Foundation 之 NSNumber
来源:互联网 发布:linux 获取文件夹大小 编辑:程序博客网 时间:2024/06/01 18:26
NSNumber
引入:
基本数据类型变为对象
例如使用基本数据类型:NSInteger a = 9;但是有时候使用基本数据类型是不方便的,比如说需要将基本类型变量装到数组里,但数组里装的都是对象的地址。或者放入字典中也不可行。
所以需要将基本数据类型变为对象,让我们能够装入数组或者字典当中,让我们能够给他们发送消息,即调用方法,如排序。
专门用来装基础数据类型的对象类NSNumber
NSNumber的对象可以是各种各样数字的内容。比如:
NSNumber * intNumber = [[NSNumber alloc] initWithInt:5]; // 整型
NSNumber * floatNumber = [[NSNumber alloc] initWithFloat:3.14f]; // 浮点型
NSNumber * doubleNumber = [[NSNumber alloc] initWithDouble:3.14]; // 双精度浮点型
NSNumber * charNumber = [[NSNumber alloc] initWithChar:'A']; // 字符型
等等……
注意:上面这几个对象是不同的对象。
NSNumber是一个类簇
有一些类聚合在一起形成了一些类簇,从表面上看来是一个类,实际上,它可以创建各种类的对象。可以通过NSNumber调用不同的初始化方法创造出不同的对象。
一个super类,一个与众不同的类,一个超级的类。
NSNumber和UIButton都是典型的类簇,虽然使用同一个类名,但是可以创建不同的对象。
举例:猫狗和动物。
NSNumber比较方法
NSNumber * intNumber1 = [[NSNumber alloc] initWithInt:5];NSNumber * intNumber2 = [[NSNumber alloc] initWithInt:6];
BOOL ret = [intNumber1 isEqualToNumber:intNumber2]; // 比较是否相等。
BOOL ret = [intNumber1 isEqualToNumber:charNumber];
// 比较是否相等(不同类型的对象也可以作比较)
除了比较是否相等之外,两个NSNumber对象也可以像普通的基本变量一样去比较它们的大小关系:
if([intNumber1 compare:intNumber2] == NSOrderedAscending){
NSLog(@"intNumber1 < intNumber2");
}else if([intNumber1 compare:intNumber2] == NSOrderedSame) {
NSLog(@"intNumber1 == intNumber2");
}else if([intNumber1 compare:intNumber2] == NSOrderedDescending) {
NSLog(@"intNumber1 > intNumber2");
}
获得原始的基本类型的数据
既然把基本的数据存到了对象当中,如果想获得原始的基本类型的数据:调用intNumber对象的intValue方法。
如:
NSLog(@"%d", [intNumber intValue]);
NSLog(@"%f", [floatNumber floatValue]);
NSLog(@"%f", [doubleNumber doubleValue]);
NSLog(@"%c", [charNumber charValue]);
更简洁的理解和使用方法
// 自动创建NSNumber对象,只要在数字前加一个@,
编译器将会识别出它是何种类型的数字(double,float,character,boolean等)
NSNumber * number = @123;// 获取对象的值
int value = [number intValue];
0 0
- Foundation 之 NSNumber
- Foundation框架篇之NSNumber
- foundation-NSNumber
- OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 黑马程序员——foundation框架之NSNumber,NSDate,NSValue
- 黑马程序员—Foundation框架之NSFileManager、NSNumber与NSDate
- Foundation框架NSNumber
- OC:NSNumber (Foundation)
- Foundation框架--- NSDate、NSNumber
- Foundation框架 - NSNumber类
- Foundation -- OC集合 --NSNumber
- Foundation中的NSNumber与NSValue
- Foundation NSNumber NSValue NSNull NSDate
- Objective-C边学边记-10:Foundation Kit快速教程之 各种数值(NSNumber,NSValue,NSNull
- Objective-C之Foundation框架NSNumber、NSNull、NSValue、NSDate用法介绍
- 黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)
- 2015 C++暑期实训(下)
- Activity的启动模式
- spark wordCount单词计数及原理解析
- sqlserver 迁移到mysql
- hello world
- Foundation 之 NSNumber
- bzoj 2440 (莫比乌斯函数)
- 解析python中:if __name__=='__main__':
- test
- ForRobot
- weblogic管理维护(持续更新中)
- 如何获得servletConfig对象和servletContext对象以及通过这两个对象获得初始化参数
- loadrunner11.0安装与破解
- swift 实现对UItableView下cell中内容的搜索(2)