[OC Foundation框架 - 13] NSValue

NSNumber能够包装基本数据类型称为OC对象,是因为继承了NSValue

包装结构体成OC对象

1.自带结构体
 1 void value()
 2 {
 3     CGPoint point = CGPointMake(10, 10);
 4     NSValue *obj = [NSValue valueWithPoint:point];
 5     NSLog(@"%@", obj);
 6    
 7     CGPoint p1 = [obj pointValue];
 8     BOOL result = CGPointEqualToPoint(point, p1);
 9     NSLog(@"result = %i", result);
10 }
 
2.自定义结构体
 1 typedef struct
 2 {
 3     int year;
 4     int month;
 5     int day;
 6 } Date;
 7 
 8 void value2()
 9 {
10     Date d1 = {2012,12,12};
11     //void * 代表任何指针
12    
13     //根据结构体类型生成对应的类型描述字符串
14     char *type = @encode(Date);
15     NSValue *v1 = [NSValue value:&d1 withObjCType:type];
16    
17     Date d2;
18     [v1 getValue:&d2];
19     NSLog(@"%i-%i-%i", d1.year, d1.month, d1.day);
20 }

 

转载于:https://www.cnblogs.com/hellovoidworld/p/4119418.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值