什么是NSNumber
- NSArray\NSDictionary中只能存放OC对象, 不能存放int\float\double等基本数据类
-
如果真想把基本数据(比如int)放进数组或字典中, 需要先将基本数据类型包装成OC对象,把 int /float /double -----> 包装成一个对象
NSNumber的使用:
int a = 10;
int x = 100;
float f1 = 3.23f;
double d1 = 2.34;
//int ---> obj
// numberWithInt 把int 转换为 NSNumber
NSNumber *intObj = [NSNumber numberWithInt:a];
NSMutableArray *array = [NSMutableArray arrayWithObjects:intObj, nil];
// float ---> NSNumber
NSNumber *floatObj = [NSNumber numberWithFloat:f1];
[array addObject:floatObj];
// double ---> NSNumber
NSNumber *dObj = [NSNumber numberWithDouble:d1];
把对象添加到数组中
//把对象添加到数组中
[array addObject:dObj];
//简写形式:@(变量名) ---> 把 x 转换为NSNumber对象
[array addObject:@(x)];
//@数值,把数值包装成对象
[array addObject:@18];
NSLog(@"array = %@",array);
数组的第一个元素和第二个元素相加
//array[0]+array[1]
//1)取出数组的元素
//2)把数组元素转换为基本数据类型的数据
NSNumber *n1 = array[0];
int a1 = [n1 intValue]; //获取对象的整形值
NSNumber *n2 = array[1];
float f2 = [n2 floatValue];
//简化写法
a1 = [array[0] intValue]+[array[1] floatValue];
NSLog(@"%d",a1);