如何比较两个NSInteger?

时间:2012-02-28 05:13:11

标签: objective-c ios nsinteger

我们如何比较两个NSInteger数字?我有两个NSIntegers并且比较它们常规方式不起作用。

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

尽管如此,第一个值是13,第二个值是17,if循环正在执行

有什么想法吗?

4 个答案:

答案 0 :(得分:11)

好吧,既然你的名字中有Integer和Number,你可能已经将这两个值声明为NSNumber而不是NSInteger。如果是这样,那么您需要执行以下操作:

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

否则它应该按原样工作!

答案 1 :(得分:9)

NSInteger只是内置整数类型的typedef(例如intlong)。

使用a == b进行比较是安全的。

其他常见操作符可预测:!=<=<>=等。

最后,NSInteger的基础类型因平台/架构而异。假设它总是32位或64位是不安全的。

答案 2 :(得分:9)

NSInteger int1;
NSInteger int2;

int1 = 13;
int2 = 17;

if (int1 > int2)
{
    NSLog(@"works");
}

答案 3 :(得分:2)

比较整数时,使用它可以正常工作:

int a = 5;
int b = 7;

if (a < b) {

NSLog(@"%d is smaller than %d" a, b);   

}