NSValue

  //用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);

你可能感兴趣的:(NSValue)