黑马程序员技术交流社区
标题:
NSArray 和 NSDictionary的问题
[打印本页]
作者:
Lin枫
时间:
2014-4-11 08:32
标题:
NSArray 和 NSDictionary的问题
本帖最后由 Lin枫 于 2014-4-11 10:46 编辑
为什么 NSArray 和 NSDictionary 都被设计成只能存放对象(不能存放基本类型,如 int)?
作者:
崔维友
时间:
2014-4-11 09:35
因为NSArray中存储的是指针,并且通过在加入到容器中的时候retain来保证指针的有效性。
OC的堆上存储是基于引用计数的,而原始数据类型的操作方式和OC类型是不同的(不需要retain)。
(百度知)
NSNumber *icon_height; // 创建NSNumber对象
margin_left1 = [NSNumber numberWithFloat: 15.0 / 2]; // 将浮点型转换成NSNumber类型的对象
NSArray *array1;
array1 = [NSArray arrayWithObjects:icon_height,nil]; //将浮点型对象放入数组中
float margin_width = [[arrTemp objectAtIndex:0] floatValue]; //取出数组中的元素,并将其转换成浮点型
各种数值
复制代码
NSArray和NSDictionary只能存储对象,而不能直接存储任何基本类型的数据,如int、float 或 struct。但是你可以用对象来封装基本数值。
作者:
Lin枫
时间:
2014-4-11 09:39
崔维友 发表于 2014-4-11 09:35
因为NSArray中存储的是指针,并且通过在加入到容器中的时候retain来保证指针的有效性。
OC的堆上存储是基于 ...
哦,明白了,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2