Objective-c学习笔记08-NSNumber

Objective-C可以开发apple家族系列产品的软件,这里记录成笔记方便日后复习:

我们都知道Objective-c常常用到消息机制,而 int型、float型、long型都是Objective-c中的基本数据类型,是无法接收到消息的,所以在这个时候就引入了NSNumber这个类,我们可以使用NSNumber对象来创建和初始化不同类型的数字对象

一、NSNumber基本使用

  
  
  1. //声明对象与变量
  2. NSNumber *myNumber, *floatNumber, *intNumber;
  3. NSInteger myInt;
  4.  
  5. //integer 型
  6. intNumber = [NSNumber numberWithInteger:100];
  7. int i = intNumber.intValue;
  8. NSLog(@"numberWithInteger:%i", i);
  9.  
  10. // long型
  11. myNumber = [NSNumber numberWithLong:0xabcdef];
  12. NSLog(@"numberWithLong:%li", myNumber.longValue);
  13.  
  14. // char 型
  15. myNumber = [NSNumber numberWithChar:'A'];
  16. NSLog(@"numberWithChar:%d", myNumber.charValue);
  17.  
  18. // float 型
  19. myNumber = [NSNumber numberWithFloat:0.333];
  20. NSLog(@"numberWithFloat:%f", myNumber.floatValue);
  21.  
  22. // double 型
  23. myNumber = [NSNumber numberWithDouble:23.84888];
  24. NSLog(@"numberWithDouble:%f", myNumber.doubleValue);

注:上面从NSNumber对象中获取值必须要和存储到NSNumber对象里面的数值类型一致.
NSLog输出:

2013-09-03 11:02:14.488 Objective-c--NSNumber[10507:303] numberWithInteger:100
2013-09-03 11:02:14.491 Objective-c--NSNumber[10507:303] numberWithLong:11259375
2013-09-03 11:02:14.492 Objective-c--NSNumber[10507:303] numberWithChar:65
2013-09-03 11:02:14.493 Objective-c--NSNumber[10507:303] numberWithFloat:0.333000
2013-09-03 11:02:14.493 Objective-c--NSNumber[10507:303] numberWithDouble:23.848880
Program ended with exit code: 0

当然,现在Objective-c已经引入了ARC自动引用计数,可以方便的自动处理内存,所以我们也可以方便的使用初始化实例方法:

intWithChar:
intWithShort:
intWithInt:
intWithLong
intWithFloat:
......

二、NSNumber常用方法

  
  
  1. NSNumber *number1 = [NSNumber numberWithFloat:3.14];
  2. NSNumber *number2 = [NSNumber numberWithInt:10];
  3.  
  4. //比较两个数是否相等
  5. if ([number1 isEqualToNumber:number2]) {
  6. NSLog(@"number1 equal number2");
  7. }else {
  8. NSLog(@"numbers are not equal");
  9. }
  10.  
  11. // 验证一个Number是否小于、等于或大于另一个Number
  12. if ([number1 compare:number2] == NSOrderedAscending) {
  13. NSLog(@"First number is less than second");
  14. }

isEqualToNumber:比较两个NSNumber对象的数值,程序会返回BOOL值查看这两个值是否相等.
compure: 测试一个值是否在数值上小于、等于或者大于另外一个值,当number1小于number2的时候返回NSOrderedAscending,但两个值相等这返回NSOrderdSame,如果number2大于number1则返回NSOrderedDescending。

2013-11-03 11:24:43.058 Objective-c--NSNumber[10617:303] numbers are not equal
2013-11-03 11:24:43.059 Objective-c--NSNumber[10617:303] First number is less than second
Program ended with exit code: 0

下面列举除了Api文档中对NSNumber的创建等方法,也可以查看一下NSDecimalNumber类的相关文档,它是NSNumber的子类,在对象层面上提供了一些数值的四则运算.

创建NSNumber对象
+ numberWithBool:
+ numberWithChar:
+ numberWithDouble:
+ numberWithFloat:
+ numberWithInt:
+ numberWithInteger:
+ numberWithLong:
+ numberWithLongLong:
+ numberWithShort:
+ numberWithUnsignedChar:
+ numberWithUnsignedInt:
+ numberWithUnsignedInteger:
+ numberWithUnsignedLong:
+ numberWithUnsignedLongLong:
+ numberWithUnsignedShort:
初始化NSNumber对象
– initWithBool:
– initWithChar:
– initWithDouble:
– initWithFloat:
– initWithInt:
– initWithInteger:
– initWithLong:
– initWithLongLong:
– initWithShort:
– initWithUnsignedChar:
– initWithUnsignedInt:
– initWithUnsignedInteger:
– initWithUnsignedLong:
– initWithUnsignedLongLong:
– initWithUnsignedShort:
访问数字值
– boolValue
– charValue
– decimalValue
– doubleValue
– floatValue
– intValue
– integerValue
– longLongValue
– longValue
– shortValue
– unsignedCharValue
– unsignedIntegerValue
– unsignedIntValue
– unsignedLongLongValue
– unsignedLongValue
– unsignedShortValue
检索字符串表示形式
– descriptionWithLocale:
– stringValue
比较NSNumber对象
– compare:
– isEqualToNumber:
访问类型信息
– objCType
声明: 本文采用  BY-NC-SA 协议进行授权. 转载请注明转自:  Objective-c学习笔记08-NSNumber
此条目发表在 objective-c分类目录,贴了 NSNumberobjective-c标签。将 固定链接加入收藏夹。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值