博客> 12.NSValue
12.NSValue
2018-10-23 16:12 评论:0 阅读:488 Longer_Tao
oc NSValue

/********************************** NSValue **********************************/
// 1.基本概念
// NSNumber是NSValue的子类, 但NSNumber只能包装数字类型
// NSValue可以包装任意值
// 因此, 可以用NSValue将结构体包装后,加入NSArray\NSDictionary中

// 2. 常见结构体的包装
// 为了方便 结构体 和NSValue的转换,Foundation提供了以下方法
 // 将结构体包装成NSValue对象
 + (NSValue *)valueWithPoint:(NSPoint)point;
 + (NSValue *)valueWithSize:(NSSize)size;
 + (NSValue *)valueWithRect:(NSRect)rect;

 // 从NSValue对象取出之前包装的结构体
 - (NSPoint)pointValue;
 - (NSSize)sizeValue;
 - (NSRect)rectValue;

// 3.任意数据的包装
 // 包装任意数据
 + (NSValue )valueWithBytes:(const void )value objCType:(const char *)type;
 // value参数 : 所包装数据的地址
 // type参数 : 用来描述这个数据类型的字符串, 用@encode指令来生成

 // 从NSValue中取出所包装的数据
 - (void)getValue:(void *)value;```
收藏
0
sina weixin mail 回到顶部