原文地址:http://blog.csdn.net/zerocnd/article/details/7246264
这里是分割线:==================================
NSArray和NSDictionary只能存储对象,而不能直接存储任何基本类型的数据,如int、float 、char、bool 或 struct。但是你可以用对象来封装基本数值。例如,将int型数据封装到一个对象中,然后就可以将这个对象放入NSArray或NSDictionary中了。
1)NSNumber
Cocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。
例如以下创建方法:
+ (NSNumber *) numberWithChar: (char) value;
+ (NSNumber *) numberWithInt: (int) value;
+ (NSNumber *) numberWithFloat: (float) value;
+ (NSNumber *) numberWithBool: (BOOL) value; </span>
将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:
- (char) charValue;
- (int) intValue;
- (float) floatValue;
- (BOOL) boolValue;
- (NSString *) stringValue;
代码举例:
NSNumber *icon_height; // 创建NSNumber对象
icon_height = [NSNumber numberWithFloat: 15.0 / 2]; // 将浮点型转换成NSNumber类型的对象
NSArray *array = [NSArray arrayWithObjects:icon_height,nil]; //将浮点型对象放入数组中
float height = [[array objectAtIndex:0] floatValue]; //取出数组中的元素,并将其转换成浮点型