**
使用nsvalue如下方法進行裝箱:
+(nsvalue *)valuewithbytes:(const void *)value objctype:(const char *)type;
呼叫下面的方法進行拆箱:
-(void)getvalue:(void *)value;
//// main.m
// foundationframework
//// created by kenshin cui on 14-2-16.
//#import
typedef struct
date;
//nsnumber是nsvalue的子類,而nsvalue可以包裝任何型別,包括結構體
void
test1();
char
*type=@encode(date);
nsvalue *value3=[nsvalue value:&date withobjctype:type];
//第一引數傳遞結構體位址,第二個引數傳遞型別字串
nsarray *array2=[nsarray arraywithobject:value3];
nslog(@
"%@"
,array2);
/*結果:(""
)*/
date date2;
[value3 getvalue:&date2];
//取出對應的結構體,注意沒有返回值
//[value3 objctype]//取出包裝內容的型別
nslog(@
"%i,%i,%i"
,date2.year,date2.month,date2.day);
//結果:2014,2,28
}int
main(
int
argc,
const char
* argv)
自定義型別 結構體
struct tag 結構體型別名稱 variable list 結構體變數 省略結構體型別名稱 匿名結構體型別 當省略掉結構體型別名稱時,就不能省略掉結構體變數,這樣是不合理的,所以一般我們不建議省略結構體型別名 struct x,y 全域性變數 struct a 20 p int main 注意...
自定義協議封裝包頭 包體
底層通訊訊息類,定義訊息id 訊息體,和初始化 1 using system 23 4 底層通訊訊息 5 6 public class tsocketmessage idisposable 7 2223 public void dispose 24 2829 protected virtual vo...
自定義型別 結構體(1)
結構體與陣列的區別 陣列的元素可以通過下標訪問,這是因為,陣列的長度相同。但是,結構體每乙個成員的長度都可能不同,所以不能通過下標來訪問它們,但是,結構體的每個成員都有自己的名字,結構體是通過名字來訪問的。結構體宣告結構體是一些值的集合,這些值稱為它的成員,乙個結構體的各個成員具有不同的型別。str...