当前位置:网站首页>OC-NSNumber and NSValue are generally used for boxing and unboxing
OC-NSNumber and NSValue are generally used for boxing and unboxing
2022-08-02 07:48:00 【Classmate Peng, she is at the same table】
NSNumber
装箱:将值类型转换成引用类型
拆箱:将引用类型转换成值类型
int a = 1; This is the value type It should be some default type
string a;或者NSNumberThis is the reference type Should be able to say yesNSObject
装箱
NSNumber *num1 = [[NSNumber alloc]initWithInt:20];
NSLog(@"%@ %@",num1,[num1 class]);//20 __NSCFNumber
NSNumber *num2 = [[NSNumber alloc]initWithChar:'a'];
NSLog(@"%@",num2);//97 This is to convert the letters into 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(I don't understand)
typedef struct
{
int age;
char* name;
chat sex;
} SPerson
Sperson p;
p.name = "Yang";
p.age = 10;
p.sex = 'w';
//Convert a struct toNSValue对象
NSValue* value = [NSValue valueWithBytes:&p objCType:@encode(SPerson)];
SPerson p2;
//将一个NSValueObjects are converted to structs
[value getValue:&p2];
NSLog(@"%s",p2.name);
NSLog(@"%d",p2.age);
NSLog(@"%c",p2.sex);
NSRange range = {
12,2};
//Commonly used structure packing
NSValue *rvalue = [NSValue valueWithRange:range];
//rangeValue将NSRange拆箱
NSLog(@"%@",NSStringFromRange([rvalue rangeValue]));
边栏推荐
猜你喜欢
随机推荐
主流定时任务解决方案全横评
hdu1752 copy
结构体大小计算--结构体内存对齐
技术管理三级跳
2022.07.31(LC_6133_分组的最大数量)
【杂】pip换国内源教程及国内源地址
请教一下,Flink SQL ,JDBC sink 入 mysql 库,想要搞一个自增主键,要怎么写
第06章 索引的数据结构【2.索引及调优篇】【MySQL高级】
LeetCode Algorithm 1374. 生成每种字符都是奇数个的字符串
Analysis of GCC compiler technology
你认同这个观点吗?大多数企业的数字化都只是为了缓解焦虑
实验8 VLAN综合实验
堡垒机、堡垒机的原理
FaceBook社媒营销高效转化技巧分享
2020美亚团队赛复盘
apt & apt-get命令
查看僵尸进程
HCIP day one
OC-NSNumber和NSValue一般用来装箱拆箱
实例030:回文数