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(@"左邊大");
}