14-NSNumber

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);

 

原文地址:https://www.cnblogs.com/xdl745464047/p/4006859.html