NSNumber是NSValue的一个子类,NSValue可以存放C里面的任意数量(数字)类型。它定义了一系列方法用于封转基本类型为对象(boxing),或从对象里还原出基本类型(unboxing)。同时,它也提供了一个compare方法:用于决定两个NSNumber对象的顺序,刚刚接触oc理解不够深入,以后补充修改。
试例代码:
//
// main.m
// NSNumberDemo
//
// Created by Jerome on 13-3-3.
// Copyright (c) 2013年 Jerome. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, Jerome!");
/*------------------------NSNumber------------------------*/
//类方法创建 一个NSNumber对象
NSNumber *yearNumber = [NSNumber numberWithInt:2013];
NSNumber *piNumber = [NSNumber numberWithDouble:3.1415];
NSLog(@"yearNumber is :%@",yearNumber);
NSLog(@"piNumber is :%@",piNumber);
//实例方法创建一个NSNumber对象
NSNumber *charNumber = [[NSNumber alloc] initWithChar:'s'];
NSLog(@"charNumber is:%@",charNumber);
[charNumber release];
//一般情况,我们不需要释放Foundation方法返回的对象,有时候,对象由返回它的对象所有,
//对象由方法新创建并被添加到自动释放池中,使用完由alloc方法显示创建的对象之后,需要
//对这些对象进行释放
//还原对象中的基本数字类型
int year = [yearNumber intValue];
double pi = [piNumber doubleValue];
NSLog(@"year is:%d",year);
NSLog(@"pi is: %e",pi);
}
return 0;
}