NSNumber
基本数据类型无法用于字典,数组,集合;所以,要使用的话,我们要把基本数据类型分装成对象,oc中用NSNumber转换来解决这个问题。
基本数据类型封装成NSNumber对象
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
int age = 12;
//将一个int类型的转换成NSNumber类型的
NSNumber *num1 = [NSNumber numberWithInt:age];
//将一个float类型的转换成NSNumber类型的
NSNumber *num2 = [NSNumber numberWithFloat:10.5];
//将一个double类型的转换成NSNumber类型的
NSNumber *num3 = [NSNumber numberWithDouble:3.141592653];
//将一个char类型的转换成NSNumber类型的
NSNumber *num4 = [NSNumber numberWithChar:'a'];
//将一个long类型的转换成NSNumber类型的
NSNumber *num5 = [NSNumber numberWithLong:12121211212];
//......后续类型省略掉,实际出发^_^
NSLog(@"%@\t%@\t%@\t%@\t%@", num1, num2, num3, num4,num5);
}
return 0;
}
NSNumber转成基本数据类型
int main(int argc, const char * argv[]) {
@autoreleasepool {
int age = 12;
//将一个NSNumber类型的转换回int类型的
NSNumber *num1 = [NSNumber numberWithInt:age];
int _age = [num1 intValue];
//将一个NSNumber类型的转换回float类型的
NSNumber *num2 = [NSNumber numberWithFloat:10.5];
float _num2 = [num2 floatValue];
//将一个NSNumber类型的转换回double类型的
NSNumber *num3 = [NSNumber numberWithDouble:3.141592653];
double _num3 = [num3 doubleValue];
//将一个NSNumber类型的转换回char类型的
NSNumber *num4 = [NSNumber numberWithChar:'a'];
char _num4 = [num4 charValue];
//将一个NSNumber类型的转换回long类型的
NSNumber *num5 = [NSNumber numberWithLong:12121211212];
long _num5 = [num5 longValue];
//......后续类型省略掉,实际出发^_^
NSLog(@"%d\t%.2f\t%.12f\t%c\t%ld", _age, _num2, _num3, _num4,_num5);
}
return 0;
}