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];
网友评论