一、NSNumber
1> 可以使用对象来封装基本数值;2> NSNumber类可以包装基本数据类型,还包括无符号版本和各种long型数据及long long整型数据;
NSNumber *n = [NSNumber numberWithInt:10];
基本数据类型转成字符串
NSNumber *n = [NSNumber numberWithDouble:10.5];
int b = [n doubleValue];
NSString *str = [NSString stringWithFormat:@"%d",b];
字符串转成基本数据类型
int c = [str intValue];
@20 将20包装成一个NSNumber对象
NSArray *arrary = @[
@{@"name" : @"jack",@"age" : @20},
@{@"name" : @"rose",@"age" : @25},
@{@"name" : @"jim",@"age" : @27}
];
相当于
NSNumber *n = [NSNumber numberWithInt:20];
将各种基本数据类型包装成NSNumber对象
@10.5;
@YES;
@'A'; // NSNumber对象
@"A"; // NSString对象
二、NSValue
NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue
结构体--->OC对象
CGPoint p = CGPointMake(10, 10);
将结构体转为Value对象
NSValue *value = [NSValue valueWithPoint:p];
NSArray *array = @[value ];
将value转为对应的结构体
[value pointValue];