自定義結構體封裝

2021-07-11 15:48:09 字數 1032 閱讀 4806

**

使用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...