OC NSInteger 和 NSNumber

Objective-C 支持的类型有两种:基本类型和类。

基本类型,如同 C 语言中的 int 类型一样,拿来就可以直接用。而类在使用时,必须先创建一个对象,再为对象分配空间,接着做初始化和赋值。类的初始化,需用类自身的方法(类方法)。代码中所创建的对象,不用后,还得记着释放。

NSNumber 是类,而 NSInteger 只不过是个基本类型。

既然 NSInteger 是基本类型,那么,使用起来就非常简单。声明一个变量,NSInteger myInt;直接赋值就可以了。 比如:myInt = 8;

谈到“类”,总是给人以抽象的感觉。像 NSNumber 这个类型,从字面上看,它属于char、int、long、double中的哪一种呢?其实,NSNumber 可以隶属其中的任意一种类型。既然 NSNumber 是类,就应该遵循“类”的规则。通过类方法来创建、初始化一个类的对象。

NSNumber 所拥有的类方法,如下:

+ (NSNumber*)numberWithChar: (char)value;
+ (NSNumber*)numberWithInt: (int)value;
+ (NSNumber*)numberWithFloat: (float)value;
+ (NSNumber*)numberWithBool: (BOOL) value;

例如:

NSNumber *myNumber, *floatnumber, *intNumber, *doublenumber, *charNumber; //定义各种类型
myNumber = [NSNumber numberWithLong:0xabcdef];  //分别赋值
floatnumber = [NSNumber numberWithFloat:12.33];
intNumber = [NSNumber numberWithInt:100];
doublenumber = [NSNumber numberWithDouble:12345e+15];
charNumber = [NSNumber numberWithChar:'X'];

将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:

- (char) charValue;
- (int) intValue;
- (float) floatValue;
- (BOOL) boolValue;
- (NSString*) stringValue;
//获取对象的各种类型的值:
myInt = [intNumber intValue]; 
myInt = [floatnumber floatValue];
myInt = [doublenumber doubleValue];
myInt = [charNumber charValue];

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值