1、NSNumber
NSNumber 可以将各种基本数据类型包装成NSNumber对象。
下面是常见的NSNumber方法:分别将各种基本数据类型包装成NSNumber对象。
+ (NSNumber *)numberWithBool:(BOOL)value 等价于@(BOOL)value
+ (NSNumber *)numberWithChar:(Char)value 等价于@(Char)value
+ (NSNumber *)numberWithDouble:(double)value 等价于@(double)value
+ (NSNumber *)numberWithFloat:(float)value 等价于@(float)value
+ (NSNumber *)numberWithInt:(int)value 等价于@(int)value
+ (NSNumber *)numberWithInteger:(NSInteger)value 等价于@(NSInteger)value
+ (NSNumber *)numberWithLong:(long)value 等价于@(long)value
+ (NSNumber *)numberWithLongLong:(long long)value 等价于@(long long)value
+ (NSNumber *)numberWithShort:(short)value 等价于@(short)value
+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value 等价于@(unsigned char)value
+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value 等价于@(unsigned int)value
+ (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value 等价于@(NSUInteger)value
+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value 等价于@(unsigned long)value
+ (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value 等价于@(unsigned long long)value
+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value 等价于@(unsigned short)value
1、注意点
(1) [NSNumber numberWithInt:10]; 和 @10; 是等价的
由于[NSNumber numberWithInt:10]; 和 @10; 是等价的。上面的代码也可以是:
其他的基本数据类型跟这个是一个道理,不再作详细介绍。
(2) @'A' 和 @"A"的区别
1> 'A' 是字符,属于char类型,是基本数据类型,所以 @'A' 相当于 numberWithChar: 'A' ;将字符 'a' 转换成了NSNumber类型的OC对象。
2> @"A"是OC字符串,本身就已经是OC对象。
(3)@(变量) 把变量包装成NSNumber对象
正确写法是: @(age);