OC NSNumber

NSNumber类

NSNumber类,可以将普通数据类型变成一个对象
由于NSNumber类包含许多数据类型的封装,所以也是一个类簇。具体实现:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSNumber *intA=[[NSNumber alloc]initWithInt:5];
        NSNumber *floatB=[[NSNumber alloc]initWithFloat:5.5f];
        NSNumber *doubleC=[[NSNumber alloc]initWithDouble:6.7];
        NSNumber *charD=[[NSNumber alloc]initWithChar:'D'];
        NSLog(@"%@",intA);
        NSLog(@"%@",floatB);
        NSLog(@"%@",doubleC);
        NSLog(@"%@",charD);
    }
    return 0;
}

将数据封装成为对象后,我们就可以向对象发送消息了

比较两个数据的大小
NSNumber *intA=[[NSNumber alloc]initWithInt:5];
NSNumber *intNumber=[[NSNumber alloc]initWithInt:6];
BOOL ret=[intA isEqualToNumber:intNumber];
NSLog(@"%d",ret);

我们用BOOL类型来查看比较结果,返回值为0或1
用这个方法我们甚至可以比较不同数据类型的数之间的大小

NSNumber *intA=[[NSNumber alloc]initWithInt:5];
NSNumber *floatB=[[NSNumber alloc]initWithFloat:5.5f];
BOOL ret2=[floatB isEqualToNumber:intA];
NSLog(@"%d",ret2);

我们还可以用”comper”这个方法来比较两个数的大小,这个方法返回值为-1,0,1,包含在NSComparison这个枚举类中,这个类的原型为

enum -NSComparisonResult{NSOrdered Ascending=-1,NSOrderedSame,NSOrderedDescending};

所以用这个方法实现两个类的比较核心代码为:

if([intA compare:intNumber]==NSOrderedAscending)
    NSLog(@"<");
if([intA compare:intNumber]==NSOrderedSame)
    NSLog(@"=");
if([intA compare:intNumber]==NSOrderedDescending)
    NSLog(@">");

我们在将数据封装成一个对象后还可以通过方法”数据类型+Value”将数据还原

int a=[intA intValue];
float b=[floatB floatValue];
double c=[doubleC doubleValue];
char d=[charD charValue];
NSLog(@"%d",a);
NSLog(@"%f",b);
NSLog(@"%f",c);
NSLog(@"%c",d);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值