如何使用NSValue 类型包含C结构体

                                       如何使用NSValue 类型包含C结构体

      以下文字转载自:http://idev.name/2010/12/nsvalue/     向原作者表示感谢和敬意。

    

NSValue的作用是将一个原始类型或结构体(struct)映射为一个对象(object)。

typedef struct { 
        unsigned char palmCount;
        int isFleshy; 
        float height; // in inches
} Chockitude;

如果要打包这个数据到对象里面,使用下面的代码:

Chockitude ch; 
ch.palmCount = 2; 
ch.isFleshy = true; 
ch.height = 79.25; 
 
NSValue *value = [NSValue valueWithBytes:&ch objCType:@encode(Chockitude)];

检索这个对象的内容,使用下面的操作:

Chockitude theChockitude; 
[value getValue:&theChockitude];
 
NSLog(@"palmCount = %d, isFleshy = %s, height = %f", theChockitude.palmCount, (theChockitude.isFleshy ? "YES OF COURSE" : "no"), theChockitude.height);
// this is displayed in the console log: 
// palmCount = 2, isFleshy = YES OF COURSE, height = 79.250000
  值的注意的是,在NSValue里面的结构体必须是定长的,不能有指针之类的东西。最好是基本数据类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值