Foundation框架-05 NSNumber和NSValue
来源:互联网 发布:布点算法 编辑:程序博客网 时间:2024/05/31 19:38
Foundation框架-05 NSNumber和NSValue
1.NSNumber类
- NSNumber可以将基本数据类型转换为对象类型
- 将基本数据类型转换为NSNumer对象类型
- NSNumber *valueNumber = [NSNumber numberWithInt:(基本数据类型)value];
- 将对象类型转换为基本数据类型
- int value = [intNumber intVlue];
- 基本数据类型转换对象类型简写
- NSNumber *temp = @(number);
- NSNumber *temp =@10;
- // 注意: 如果传入的是变量那么必须在@后面写上(), 如果传入的常量, 那么@后面的()可以省略
2.NSValue类
- NSNumber是NSValue的子类, 但NSNumber只能包装数字类型,NSValue可以包装任意值
- 利用NSValue包装常见的结构体
- CGPoint point = CGPointMake(x,y);
- NSValue *value = [NSValue valueWithPoint:point];//将point包装为NSValue对象
- -(NSPoint)pointValue;//从对象中取出此前包转的结构体
- 利用NSValue包装自定义的结构体
typedef struct{ int age; char *name; double height; }Person;Person p = {30, "lnj", 1.75};// valueWithBytes: 接收一个指针, 需要传递需要包装的结构体的变量的地址// objCType: 需要传递需要包装的数据类型NSValue *pValue = [NSValue valueWithBytes:&p objCType:@encode(Person)];// 从NSValue中取出自定义的结构体变量Person res;[pValue getValue:&res];
3.注意点
- 由于NSArray\NSDictionary中只能存放OC对象,不能存放int\float\double等基本数据类,如果真想把基本数据(比如int)放进数组或字典中,需要先将基本数据类型包装成OC对象
- 一般若是包装基本数据类型,使用NSNumber,包装构造类型或自定义构造类型时使用NSValue
0 0
- Foundation框架-05 NSNumber和NSValue
- Foundation框架NSNumber、NSValue和NSDate
- OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 【黑马程序员】【Foundation框架】NSNumber、NSValue和NSData
- Foundation框架—NSNumber、NSValue、NSDate
- 【Foundation】19-NSNumber、NSValue和NSDate
- Foundation框架: 10.NSNumber和NSValue的基本认识和运用
- 黑马程序员——Foundation框架NSNumber和NSValue的介绍和使用
- 黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- iOS Foundation框架 利用NSNumber和NSValue将非OC对象类型数据存放到集合
- OutMan——Foundation框架中的常用结构体、NSNumber类和NSValue类
- 黑马程序员——Foundation框架入门:NSNumber,NSValue和NSDate
- 黑马程序员——foundation框架之NSNumber,NSDate,NSValue
- Foundation框架—NSArray、NSSet、NSDictionary、NSNumber、NSDate、NSValue
- Foundation中的NSNumber与NSValue
- Foundation NSNumber NSValue NSNull NSDate
- 【Foundation学习笔记】数字对象NSNumber和NSValue
- Project Euler:Problem 57 Square root convergents
- Java中的继承与组合
- Python coding rules和标准库
- 全局网站标志
- Gas Station
- Foundation框架-05 NSNumber和NSValue
- C++ cin系列与get系列 函数 实现 用例 浅析
- Ubuntu 12.04 与Eclipse C++部署
- something about Android activity
- 每天一个linux命令(9):touch 命令
- Android Studio 中的汉字在编译的时候会报错的问题
- 2015070708 - 修正笔记
- 编写高质量代码——JavaScript篇
- 集合(2)TreeSet , 泛型