Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to compare two NSInteger?

How do we compare two NSInteger numbers ? I have two NSIntegers and comparing them the regular way wasnt working.

if (NSIntegerNumber1 >= NSIntegerNumber2) {
    //do something
}

Eventhough, the first value was 13 and the second value was 17, the if loop is executing

Any idea ?

like image 396
Ahsan Avatar asked Feb 28 '12 05:02

Ahsan


2 Answers

NSInteger is just a typedef for a builtin integral type (e.g. int or long).

It is safe to compare using a == b.

Other common operators behave predictably: !=, <=, <, >= et al.

Finally, NSInteger's underlying type varies by platform/architecture. It is not safe to assume it will always be 32 or 64 bit.

like image 167
justin Avatar answered Sep 30 '22 10:09

justin


Well, since you have Integer and Number in the name, you might have declared the two values as NSNumber instead of NSInteger. If so, then you need to do the following:

 if ([NSIntegerNumber1 intValue] >= [NSIntegerNumber2 intValue]) {
      // do something
 }

Otherwise it should work as is!

like image 41
lnafziger Avatar answered Sep 30 '22 11:09

lnafziger