OC NSNumber NSValue
2016-05-15 16:42
525 查看
OC NSNumber NSValue
iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作。NSNumber包装类
普通初始化
NSNumber * num1 = [[NSNumber alloc] initWithInt:20]; NSNumber * num2 = [NSNumber numberWithChar:'a'];
字面量初始化
NSNumber * num3 = @300; NSNumber * num4 = @123.2; NSNumber * num5 = @'X';
变量初始化
int a = 29; NSNumber * num5 = @(a);
NSNumber转基本数据类型
charValue,intValue,longValue,doubleValue
NSValue包装类
typedef struct { int age; char * name; char sex; } SPerson; SPerson person; person.name = "dahuan"; person.age = 10; person.sex = 'm'; //将一个结构体转换为NSValue对象, //@encode(aType) 可以返回该类型的 C 字符串(char *)的表示 NSValue * value = [NSValue valueWithBytes:&person objCType:@encode(SPerson)]; SPerson person2; //将一个NSValue对象转换为结构体 [value getValue:&person2]; NSLog(@"%s",person2.name); NSLog(@"%d",person2.age); NSLog(@"%c",person2.sex); NSRange range = {12,2}; //常用结构体装箱 NSValue * rvalue =[NSValue valueWithRange:range]; //rangeValue将NSRange拆箱 NSLog(@"%@",NSStringFromRange([rvalue rangeValue]));
相关文章推荐
- Android中的UI
- 算法导论学习--快速排序--Quicksort
- [leetcode]347. Top K Frequent Elements
- MQTT协议 - Mosquitto安装测试
- J Arithmetic Sequence (华农第四届) 求数组中最长等差数列
- Ex2010-06 Get version number, build number
- android UI——2D绘图中应该注意的那些坑
- requirejs搭建前端框架
- Problem J: Arithmetic Sequence
- Arduino 与 土壤湿度传感器 测量土壤湿度自动浇水提醒
- Map的按value值排序
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解(转载)
- CodeForces 559B Equivalent Strings
- RequireJS使用注意细节
- RequireJS使用注意地方
- Frequent Pattern 挖掘之二(FP Growth算法)
- 深入理解容器系列之三--------LinkedList、Stack、Queue、PriorityQueue的总结
- iOS开发UI篇—UIScrollView控件简单使用
- Android view中的requestLayout和invalidate方法
- Primefaces menu中的menuitem过多产生的问题