NSValue
2016-08-23 本文已影响7人
哔哩哔哩智能喵
//用NSValue包装常用的结构体
CGPoint point = NSMakePoint(10, 20);
NSValue *pointValue = [NSValue valueWithPoint:point];
NSLog(@"%@",pointValue);
typedef struct {
int age;
char *name;
double height;
}valueP;
//用NSValue包装自定义结构体
//valueWithBytes:接收一个指针,传递需要包装的结构体变量的指针
//objCType:@encode() "()"传递需要包装的数据类型
valueP v = {23,"lxc",1.78};
NSValue *value = [NSValue valueWithBytes:&v objCType:@encode(valueP)];
NSArray *arr = @[value];
NSLog(@"%@",arr);
//从NSValue中取出结构体变量
valueP res;
[value getValue:&res];
NSLog(@"%i%s%f",res.age,res.name,res.height);