NSNumber compare
!!! 切記!儲存於NSNumber物件的值,擷取時必須要一致。
擷取時輸出型態與儲存時的型態不同時,系統並不會出錯,而會輸出無效的值
NSNumber *myNumber, *floatNumber, *intNumber;
NSInteger myInt;
NSComparisonResult compareResult1, compareResult2;
intNumber = [NSNumber numberWithInteger: 100];
floatNumber = [NSNumber numberWithFloat: 100.00];
myNumber = [NSNumber numberWithDouble: 123456e+15];
compareResult1 = [intNumber compare: myNumber];
compareResult2 = [intNumber compare: floatNumber];
//NSOrderedAscending < 官方解釋(The left operand is smaller than the right operand.)
//NSOrderedSame == 官方解釋(The two operands are equal.)
//NSOrderedDescending > 官方解釋(The left operand is greater than the right operand.)
if(compareResult1 == NSOrderedAscending)
NSLog(@"intNumber is less than myNumber");
else if(compareResult1 == NSOrderedSame)
NSLog(@"intNumber is equal to myNumber");
else if(compareResult1 == NSOrderedDescending)
NSLog(@"intNumber is greater than myNumber");
else
NSLog(@"What the fuck?!");
if(compareResult1 == NSOrderedAscending)
NSLog(@"intNumber is less than floatNumber");
else if(compareResult1 == NSOrderedSame)
NSLog(@"intNumber is equal to floatNumber");
else if(compareResult1 == NSOrderedDescending)
NSLog(@"intNumber is greater than floatNumber");
else
NSLog(@"What the fuck?!");
執行結果:

沒有留言:
張貼留言