OC中的NSValue

 1     NSvalue把复杂的数据类型(指针、结构体等)存储成对象
 2     
 3     struct sct{
 4         int a;
 5         int b;
 6     }sctt={4,5};  
 7     
 8     NSValue *value=[[NSValue alloc] initWithBytes:&sctt objCType:@encode(struct sct)];
 9     
10     NSLog(@"%s",@encode(int));结果是i
11     NSLog(@"%s",@encode(float));结果是f
12     NSLog(@"%s",@encode(long));结果是q
13     NSLog(@"%s",@encode(struct sct));结果是{sct=ii}
14     //同过每一个类型生成的字符串是唯一的
15     if(strcmp(value.objCType, @encode(struct sct))==0{
16         NSLog(@"it is struct sct");
17     }
18     
19     //取出结构体数据
20     struct sct newSctt;
21     [value getValue:&newSctt];
22     NSLog(@"%d %d",newSctt.a,newSctt.b);//结果是 4 5
23     [value release];
24     
25     
26     
27     char *p=(char *)0x1f;
28     NSValue *value1=[[NSValue alloc] initWithBytes:&p objCType:@encode(char *)];
29     
30     char *q;
31     [value1 getValue:&q];
32     NSLog(@"%p",q);结果是0x1f
33     [value1 release];
34     
35     
36     CGPoint point;
37     CGsize size;
38     CGRect rect;
39     NSValue *pointValue=[NSValue valueWithPoint:point];
40     NSValue *sizeValue=[NSValue valueWithSize:size];
41     NSvalue *recrValue=[NSValue valueWithRect:rect];
42     NSValue & rangeValue=[NSValue valueWithRange:NSMakeRange(3,4)];

 

转载于:https://www.cnblogs.com/sdutmyj/p/4562196.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值