OC教程10-NSNumber具体

NSNumber简单介绍

NSNumber是数字的对象形式,由于在OC的数组和字典中仅仅同意存放对象,所以我们有时候须要转化

我们普通的类型是   123 那么 NSNumber类型的是  @123,它是一个对象


1.把int float double等类型转化为 NSNumber类型

查看系统的API我们能够看见有例如以下的方法能够生成NSNumber类型:

+ (NSNumber *)numberWithChar:(char)value;
+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value;
+ (NSNumber *)numberWithShort:(short)value;
+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value;
+ (NSNumber *)numberWithInt:(int)value;
+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value;
+ (NSNumber *)numberWithLong:(long)value;
+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value;
+ (NSNumber *)numberWithLongLong:(long long)value;
+ (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value;
+ (NSNumber *)numberWithFloat:(float)value;
+ (NSNumber *)numberWithDouble:(double)value;
+ (NSNumber *)numberWithBool:(BOOL)value;
+ (NSNumber *)numberWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0);
+ (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0);

使用演示样例:

        //1.把 int float double转化为相应的对象类
        
        int aa1 = 110;
        NSNumber *aa2 = @(aa1);//直接使用@符号转化
        NSNumber *aa3 = [NSNumber numberWithInt:aa1];//用法转化
        float bb1 = 13.4;
        NSNumber *bb2 = [NSNumber numberWithFloat:bb1];
        NSLog(@"aa2 = %@,bb2 = %@",aa2,bb2);


2.把 NSNumber转化为普通数据类型

我们能够通过NSNumber的属性和方法来获得其内部的值

@property (readonly) char charValue;
@property (readonly) unsigned char unsignedCharValue;
@property (readonly) short shortValue;
@property (readonly) unsigned short unsignedShortValue;
@property (readonly) int intValue;
@property (readonly) unsigned int unsignedIntValue;
@property (readonly) long longValue;
@property (readonly) unsigned long unsignedLongValue;
@property (readonly) long long longLongValue;
@property (readonly) unsigned long long unsignedLongLongValue;
@property (readonly) float floatValue;
@property (readonly) double doubleValue;
@property (readonly) BOOL boolValue;
@property (readonly) NSInteger integerValue NS_AVAILABLE(10_5, 2_0);
@property (readonly) NSUInteger unsignedIntegerValue NS_AVAILABLE(10_5, 2_0);

@property (readonly, copy) NSString *stringValue;

使用演示样例:

   //2.获取NSNumber中的数字值
        NSNumber *cc1 = @123;
        int cc2 = [cc1 intValue];//获取整数值
        
        NSNumber *dd1 = @123.456;
        double dd2 = [dd1 doubleValue];//获取double值
        double dd3= dd1.intValue;//属性方式

3.NSNumber之间的比較

- (NSComparisonResult)compare:(NSNumber *)otherNumber;

- (BOOL)isEqualToNumber:(NSNumber *)number;
4.NSNumber存放到 数组 或者 字典中

        NSArray *arr = @[@1,@123,@2];
        NSNumber *num1 = arr[0];
        NSNumber *num2 = [arr objectAtIndex:1];
        
        NSDictionary *dic = @{@"key1":@1,@"key2":@2};
        NSNumber *nu1 = dic[@"key1"];
        NSNumber *nu2 = [dic objectForKey:@"key2"];







转载于:https://www.cnblogs.com/lcchuguo/p/5253182.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值