在集合中,只可以包含OC对象,为了也能包含基本数据类型,则需要将基本数据类型转换成OC对象。
关键类:NSNumber 和 NSValue,NSNumber 为NSValue的子类。
基本数据类型转OC对象(NSNumber)
1)@6; // int —> NSNumber
2)@6.45; // float —> NSNumber
3)@YES; // BOOL —> NSNumber
4)@‘a'; // char —> NSNumber
对于类似这样:
int age=22;
NSNumber *_age = @(age);
这样就可以转换了。
NSNumber 转回基本数据类型:[NSNumber对象 xxxValue].
比如:
int age = 22;
NSNumber *n = @(age);
int _age = [n intValue];
对于结构体、枚举类型,则用NSValue.
例如:
CGPoint p = CGPointMake(10,10);
NSValue *value = [NSValue valueWithPoint:p];
NSArray *a = @[value];
//将value转回对应的结构体
[value pointValue]; //其他类似