NSNumber
继承自C语言的基础变量类型(int, char, float等)不能被添加到数组和字典等OC专有的数据结构中。可以先将基础类型数据,存入NSNumber对象,再将NSNumber对象存入数组或字典中。
//创建NSNumber对象
NSNumber *num1 = [NSNumber numberWithInt:5];
NSNumber *num2 = [NSNumber numberWithFloat:5.0f];
NSNumber *num3 = [NSNumber numberWithDouble:5.2];
NSNumber *num4 = [NSNumber numberWithChar:'a'];
NSNumber *num5 = [NSNumber numberWithBool:YES];
//将NSNumber对象插进数组
NSArray *array = @[num1, num2, num3, num4, num5];
//将数组中的对象类型还原
int ret1 = [array[0] intValue];
float ret2 = [array[1] floatValue];
double ret3 = [array[2] doubleValue];
char ret4 = [array[3] charValue];
BOOL ret5 = [array[4] boolValue];
//比较两个NSNumber对象是否相等
BOOL ret6 = [num1 isEqualToNumber:num2];
if (ret6) {
NSLog(@"num1等于num2");
}else {
NSLog(@"num1不等于num2");
}
//判断两个NSNumber对象的大小
NSComparisonResult ret7 = [num2 compare:num3];
if (ret7 == NSOrderedAscending) {
NSLog(@"右边大");
}else if (ret7 == NSOrderedSame){
NSLog(@"相等");
}else {
NSLog(@"左边大");
}