标签:使用 strong 数据 io re c cti ar
NSNumber是NSValue的子类,但 NSNumber只能包装数字类型,NSValue可以包装任意值。也可以用NSValue包装结构体后加入NSArray,NSDictionary等集合中。
value参数是想要包装的数据的地址(如一个NSPoint的地址,可以用&来取地址),type参数是用来描述这个数据类型的字符串,用@encode指令来生成
例如:
typedef struct{
int year;
int month;
int day;
}Date;
Date date = {2013, 4,7};
//包装结构体
char *ctype = @encode(Date);
NSValue *value = [NSValue value:&date withObjCType:ctype];
//取出包装好的结构体
Date date1;
[value getValue:&date1];
为了方便struct和NSValue的转换,cocoa还提供了以下方法:
标签:使用 strong 数据 io re c cti ar
原文地址:http://www.cnblogs.com/martinhu/p/3868399.html