ios之NSNumber
2024-09-08 04:05:55
NSNumber
- + (NSNumber *)numberWithInt:(int)value;
- + (NSNumber *)numberWithDouble:(double)value;
- - (int)intValue;
- - (double)doubleValue;
NSNumber可以将基本数据类型包装起来,形成一个对象,这样就可以给其发送消息,装入NSArray中等等。
NSNumber * intNumber=[NSNumber numberWithInt:100];
NSNumber *floatNumber=[NSNUmber numberWithFloat:100.00];
int i=[intNumber intValue];
if([intNumber isEqualToNumber:floatNumber]) ....
NSNumber继承NSObject ,可以使用比较 compare: isEqual等消息
- int main (int argc, constchar * argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePoolalloc] init];
- NSNumber* intNumber;
- NSNumber* floatNumber;
- ];
- floatNumber = [NSNumbernumberWithFloat:99.9];
- NSInteger myInt;
- myInt = [intNumber integerValue];
- NSLog(@"myInt = %li", myInt);
- [pool drain];
- return0;
- }
一般来说,无需担心需要释放Foundation方法返回的对象。有时候,对象由返回它的方法所有。其他情况下,对象是由方法新创建的并被添加到自动释放池里。使用完由alloc方法显式创建的对象(包括Foundation对象)之后,需要释放它们。
如上例中,无需对intNumber,floatNumber调用release释放内存。
但如果采用intNumber = [NSNumber alloc] initWithInt:100]; 创建,在使用完后,需要使用[intNumber Release];来释放它。
另外,NSInteger并不是一个类,使用使用typedeflong NSInteger;定义的。
最新文章
- c#中多线程同步Lock(锁)的研究以及跨线程UI的操作
- llvm-summary
- rails程序文件名命名规范
- 解决Android Studio 和 Android SDK Manager 无法在线更新的问题.
- Html/Css(新手入门第一篇)
- JS原生方法实现jQuery的ready()
- gcc编译出现的问题
- 问题:loadrunner录制event为0
- Linux程序设计(一)入门
- Caffe Python特征抽取
- C语言中的字符串截取函数
- Mac OSX的开机启动配置
- Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)
- python 标准库 -- subprocess
- JavaScript实现接口的三种经典方式
- Centos 7 最小化kvm部署
- linux下安装部署ansible
- win10与虚拟机fedora14使用samba文件共享
- 计划任务_crontab
- (转)/etc/init.d/functions详解