OC中的NSNumber、NSValue
2015-11-01 03:12
489 查看
NSNumber
OC中集合类中只能存储OC对象不能存储基本数据类型如果要存储对基本数据类型进行包装
存储基本数据类型
1. 基本数据类型 -> 包装类型(NSNumber) -> 存入集合类
2. 从集合中取出包装类型 -> 包装类型(NSNumber) -> 基本数据类型
NSNumber的使用
int main(int argc, const char * argv[]) { @autoreleasepool { // 基本数据类型转包装类型 NSNumber *number = [NSNumber numberWithInt:19]; number = [NSNumber numberWithFloat:10.1f]; number = [NSNumber numberWithDouble:10.10]; number = [NSNumber numberWithBool:YES]; // 包装类型转基本数据类型 int i = number.intValue; number.floatValue; number.doubleValue; number.boolValue; // 快速创建NSNumber对象 number = @1; number = @1.1; number = @1.2f; } return 0; }
NSValue
NSNumber实际上是NSValue的子类,NSValue可以封装任意值。你可以将NSValue将结构体放入NSArray、NSDictionaryint main(int argc, const char * argv[]) { @autoreleasepool { // 结构体转包装类型 NSRange range = {1,20}; NSValue *value = [NSValue valueWithRange:range]; NSPoint point = CGPointMake(1.2,10.2); NSValue *value2 = [NSValue valueWithPoint:point]; NSSize size = CGSizeMake(10, 20); NSValue *value3 = [NSValue valueWithSize:size]; NSRect rect = CGRectMake(10, 10, 20, 20); NSValue *value4 = [NSValue valueWithRect:rect]; // 自定义的结构体转NSValue typedef struct { int year; int month; int day; } ZZDate; ZZDate date = {2014,12,5}; NSValue *value5 = [NSValue valueWithBytes:&date objCType:@encode(ZZDate)]; NSLog(@"%@",value5); // 包装类型转结构体 ZZDate d1; [value5 getValue:&d1]; NSLog(@"%d,%d,%d",d1.year,d1.month,d1.day); NSRange r1; [value getValue:&r1]; NSLog(@"%lu,%lu",(unsigned long)r1.length,(unsigned long)r1.location); } return 0; }
相关文章推荐
- Objective-C的内省(Introspection)用法小结
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- Objective-C中NSNumber与NSDictionary的用法简介
- Objective-C中NSLog输出格式大全
- Swift调用Objective-C编写的API实例
- Swift、Objective-C、Cocoa混合编程设置指南
- Objective-c代码如何移植为Swift代码 Objective-c代码转移到Swift过程介绍
- Swift调用Objective-C代码
- 以实例讲解Objective-C中的KVO与KVC机制
- objective-c中生成随机数的方法
- 在Swift中使用Objective-C编写类、继承Objective-C类
- Swift能代替Objective-C吗?
- Objective-C 消息传递机制详解
- 在一个项目中同时使用Swift和Objective-C代码混合编程的方法
- vm安装mac os x 10.7 lion
- objective-c(一)
- objective-c(二)
- objective-c(三)
- objective-c(四)-基本数据类型以及循环和选择结构