Comparing NSNumbers in Objective C

Viewed 49439

I am a beginner at Objective-C and I am a bit confused at this scenario. I have the following code:

if (number1 < number2) {
    NSLog(@"THE FOLLOWING NUMBER ");
    NSLog(@"%@", number1);
    NSLog(@"IS LESS THAN");
    NSLog(@"%@", number2);
}

When I run this code I see really strange results like this:

2011-07-06 20:38:18.044 helloworld[1014:207] THE FOLLOWING NUMBER 
2011-07-06 20:38:18.047 helloworld[1014:207] 190.8776
2011-07-06 20:38:18.050 helloworld[1014:207] IS LESS THAN
2011-07-06 20:38:18.053 helloworld[1014:207] 96.75866

Both numbers are NSNumber objects, how could something like this happen? I am getting the two numbers by finding distances between sprites on the screen.

Any clues or advice would really be appreciated

5 Answers

NSNumber has a method for comparison: - (NSComparisonResult)compare:(NSNumber*)aNumber

if([numberOne compare:numberTwo] == NSOrderedSame) 
{
      // proceed
}

These work great:

if ([number1 isLessThan:number2])
if ([number1 isLessThanOrEqualTo:number2])
if ([number1 isGreaterThan:number2])
if ([number1 isGreaterThanOrEqualTo:number2])
if ([number1 isEqualTo:number2])
if ([number1 isNotEqualTo:number2])
Related