关于NSNumber的一些方法

本文详细介绍了NSNumber类及其与NSInteger等基本数据类型的区别。通过代码示例展示了如何使用NSNumber的初始化方法及属性,并提供了多种类型的NSNumber实例创建方式。

NSNumber是对象,其父类是NSValue,NSValue的父类是NSObject,而NSInteger,NSUInteger等是基本数据类型,他们只是把C语言中的int,usigned int重新命名了一下,但具体是哪一种数据类型还得根据cpu的来决定,代码如下:

<span style="font-size:14px;">#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif</span>


常用的简化写法:

<span style="font-size:18px;"> NSNumber *num = @(65);
 NSLog(@"%c",num.intValue);</span>
<span style="font-size:18px;"> NSNumber *ch = @('g');
 NSLog(@"%c",ch.charValue);</span>

NSNumber提供了很多带参初始化方法:

<span style="font-size:14px;">- (NSNumber *)initWithChar:(char)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithUnsignedChar:(unsigned char)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithShort:(short)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithUnsignedShort:(unsigned short)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithInt:(int)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithUnsignedInt:(unsigned int)value NS_DESIGNATED_INITIALIZER;
- (NSNumber *)initWithLong:(long)value </span>

也提供了很多只读属性(只有getter方法):

<span style="font-size:14px;">@property (readonly) char charValue;
@property (readonly) unsigned char unsignedCharValue;
@property (readonly) short shortValue;
@property (readonly) unsigned short unsignedShortValue;
@property (readonly) int intValue;
@property (readonly) unsigned int unsignedIntValue;
@property (readonly) long longValue;
</span>

还有工厂方法:

+ (NSNumber *)numberWithChar:(char)value;
+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value;
+ (NSNumber *)numberWithShort:(short)value;
+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value;
+ (NSNumber *)numberWithInt:(int)value;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值