美文网首页
iOS-NSNumber

iOS-NSNumber

作者: 我是谁重要吗 | 来源:发表于2018-03-31 20:34 被阅读22次

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];

相关文章

  • iOS-NSNumber

    NSNumber 是 NSValue的子类使用NSNumber对象来创建和初始化不同类型的数字对象NSArray、...

网友评论

      本文标题:iOS-NSNumber

      本文链接:https://www.haomeiwen.com/subject/zudncftx.html