iOS-NSNumber

NSNumber 是 NSValue的子类
使用NSNumber对象来创建和初始化不同类型的数字对象
NSArray、NSDictionary中只能存放OC对象, 不能存放int、float、double等基本数据类型,先将基本数据类型包装成OC对象 才能存储。

结构体数据类型用NSValue存储,NSNumber无法存储。
OC 常用的结构体类型:
NSRect(表示一个位置和尺寸)
NSPoint(表示坐标位置)、
NSSize(表示尺寸)、
NSRange(表示范围) 、

/// NSIndexSet 数字的集合类! (装了一堆没有重复的数字)
// 用一个range来创建一个数字的集合!
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)];

初始化存入:

//实例化方法:
initWithChar
initWithShort
initWithInt
initWithLong
initWithLongLong:
initWithFloat
initWithDouble
initWithBool
initWithInteger
initWithInteger:

//类方法:
numberWithChar
numberWithShort
numberWithInt
numberWithLong
numberWithLongLong
numberWithFloat
numberWithDouble
numberWithBool
numberWithInteger:

// 简单写法存入

    NSNumber *num = @1;
    NSNumber *num1 = @3.14;
    NSNumber *num2 = @343.33434344;
    NSNumber *num3 = @YES;

比较

isEqualToNumber
compare

取出,转化成其他类型

@property (readonly) const char *objCType  //判断类型
@property (readonly) char charValue;
@property (readonly) short shortValue;
@property (readonly) int intValue;
@property (readonly) long longValue;
@property (readonly) long long longLongValue;
@property (readonly) float floatValue;
@property (readonly) double doubleValue;
@property (readonly) BOOL boolValue;
@property (readonly, copy) NSString *stringValue;

NSNumber *num = @123;
// int intnum = num.intValue;
int intnum = [num intValue];

存储基本类型的其他方法:

int a = 23;
[arr1 addObject:@(a)];

[arr1 addObject:@23];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在编程的过程中,一些基本数据类型的变量是必不可少的。但是在OC编程语言当中,OC的消息机制并不能向这些基本数据类型...
    赵亦晨阅读 3,093评论 0 0
  • github 1、直播喵播MGMiaoBo下载 2、逗视:逗你玩的直播App,可下载试玩 看下效果 前言:在编程的...
    Mg明明就是你阅读 4,990评论 0 2
  • NSNumber简单的说就是一些基本数据类的对象形式 NSArray\ NSDictionary中只能存放OC对象...
    苍茫的天涯阅读 8,669评论 0 0
  • 1.NSNumber基本概念 NSArray\NSDictionary中只能存放OC对象,不能存放int\floa...
    WenJim阅读 1,839评论 0 0
  • 上周,某人出差一周,期间打了三五个电话,嘘寒问暖,一反常态。 有一天,他又来了一个电话,说路过某地,当...
    左岸渡己阅读 2,806评论 11 4