Objective-c学习笔记08-NSNumber
来源:互联网 发布:linux kernel map 编辑:程序博客网 时间:2024/06/05 19:35
Objective-C可以开发apple家族系列产品的软件,这里记录成笔记方便日后复习:
- Objective-c学习笔记01——简介
- Objective-c学习笔记02——类(面向对象)
- Objective-c学习笔记03——内存管理
- Objective-c学习笔记04——NSString
- Objective-c学习笔记05——NSArray(NSMutableArray)
- Objective-c学习笔记06——字典与集合
- Objective-c学习笔记07——异常处理(try catch)
- Objective-c学习笔记08——NSNumber
我们都知道Objective-c常常用到消息机制,而 int型、float型、long型都是Objective-c中的基本数据类型,是无法接收到消息的,所以在这个时候就引入了NSNumber这个类,我们可以使用NSNumber对象来创建和初始化不同类型的数字对象
一、NSNumber基本使用
- //声明对象与变量
- NSNumber *myNumber, *floatNumber, *intNumber;
- NSInteger myInt;
- //integer 型
- intNumber = [NSNumber numberWithInteger:100];
- int i = intNumber.intValue;
- NSLog(@"numberWithInteger:%i", i);
- // long型
- myNumber = [NSNumber numberWithLong:0xabcdef];
- NSLog(@"numberWithLong:%li", myNumber.longValue);
- // char 型
- myNumber = [NSNumber numberWithChar:'A'];
- NSLog(@"numberWithChar:%d", myNumber.charValue);
- // float 型
- myNumber = [NSNumber numberWithFloat:0.333];
- NSLog(@"numberWithFloat:%f", myNumber.floatValue);
- // double 型
- myNumber = [NSNumber numberWithDouble:23.84888];
- NSLog(@"numberWithDouble:%f", myNumber.doubleValue);
注:上面从NSNumber对象中获取值必须要和存储到NSNumber对象里面的数值类型一致.
NSLog输出:
2013-09-03 11:02:14.488 Objective-c--NSNumber[10507:303] numberWithInteger:1002013-09-03 11:02:14.491 Objective-c--NSNumber[10507:303] numberWithLong:112593752013-09-03 11:02:14.492 Objective-c--NSNumber[10507:303] numberWithChar:652013-09-03 11:02:14.493 Objective-c--NSNumber[10507:303] numberWithFloat:0.3330002013-09-03 11:02:14.493 Objective-c--NSNumber[10507:303] numberWithDouble:23.848880Program ended with exit code: 0
当然,现在Objective-c已经引入了ARC自动引用计数,可以方便的自动处理内存,所以我们也可以方便的使用初始化实例方法:
intWithChar:intWithShort:intWithInt:intWithLongintWithFloat:......
二、NSNumber常用方法
- NSNumber *number1 = [NSNumber numberWithFloat:3.14];
- NSNumber *number2 = [NSNumber numberWithInt:10];
- //比较两个数是否相等
- if ([number1 isEqualToNumber:number2]) {
- NSLog(@"number1 equal number2");
- }else {
- NSLog(@"numbers are not equal");
- }
- // 验证一个Number是否小于、等于或大于另一个Number
- if ([number1 compare:number2] == NSOrderedAscending) {
- NSLog(@"First number is less than second");
- }
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 equal2013-11-03 11:24:43.059 Objective-c--NSNumber[10617:303] First number is less than secondProgram 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分类目录,贴了NSNumber, objective-c标签。将固定链接加入收藏夹。
- Objective-c学习笔记08-NSNumber
- Objective-C学习- 数字对象 NSNumber
- Objective-C 【NSNumber】
- Objective-C之NSNumber
- objective-c 基础语法学习--(1)NSNumber类
- Objective-c 数字对象(NSNumber)
- Objective-c基础之NSNumber
- Objective—C NSNumber 总结
- Objective-c 数字对象(NSNumber)
- Objective-c 数字对象(NSNumber)
- objective-c 数字对象 NSNumber
- Objective-c 数字对象(NSNumber)
- Objective--C中的NSNumber类
- Objective-c 数字对象(NSNumber)
- Objective-C 数字对象 (NSNumber)
- Objective-C学习笔记
- Objective-C 学习笔记
- Objective-C学习笔记
- expdp数据泵全库导出和导入
- Objective-c学习笔记03——内存管理
- PHP-构造方法和析构方法
- Objective-c学习笔记06——字典与集合
- Chubby分布式锁
- Objective-c学习笔记08-NSNumber
- Java的注解(Annotation)
- 定制iOS 7中的导航栏和状态栏
- 表单验证插件
- Objective-c——@class关键字&#import
- c#模拟鼠标键盘操作
- Spring Data与MongoDB:不协调的设计
- android 获取网络图片并在Imageview上显示
- 关联数据及其应用