OC-NSNumber和NSValue一般用来装箱拆箱

NSNumber

装箱:将值类型转换成引用类型
拆箱:将引用类型转换成值类型
int a = 1; 这个就是值类型 应该就是一些默认类型
string a;或者NSNumber这种就是引用类型 应该也可以说是NSObject

装箱

NSNumber *num1 = [[NSNumber alloc]initWithInt:20];
NSLog(@"%@ %@",num1,[num1 class]);//20 __NSCFNumber


NSNumber *num2 = [[NSNumber alloc]initWithChar:'a'];
NSLog(@"%@",num2);//97 这样就是将字母转换成了ascll码


NSNumber *num3 = @300;
NSLog(@"%@",num3);//300


int a = 29;
NSNumber *num5 = @(a);
NSLog(@"%@",num5);//5

拆箱

通过intValue floatValue拆箱

NSNumber *num3 = @300;
NSLog(@“%d”,num3 intValue);//300
NSNumber *num3 = @300.0;
NSLog(@“%f”,num3 floatValue);//300.0

NSValue(没有怎么搞懂)

typedef struct 
{
	int age;
	char* name;
	chat sex;
} SPerson
Sperson p;
p.name = "Yang";
p.age = 10;
p.sex = 'w';

//将一个结构体转换为NSValue对象
NSValue* value = [NSValue valueWithBytes:&p objCType:@encode(SPerson)];
SPerson p2;
//将一个NSValue对象转化为结构体
[value getValue:&p2];

NSLog(@"%s",p2.name);
NSLog(@"%d",p2.age);
NSLog(@"%c",p2.sex);
NSRange range = {12,2};
//常用结构体装箱
NSValue *rvalue = [NSValue valueWithRange:range];
//rangeValue将NSRange拆箱
NSLog(@"%@",NSStringFromRange([rvalue rangeValue]));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值