如何比较两个NSInteger?

Ahs*_*san 8 objective-c nsinteger ios

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

if (NSIntegerNumber1 >= NSIntegerNumber2) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)

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

任何的想法 ?

lna*_*ger 11

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

 if ([NSIntegerNumber1 intValue] >= [NSIntegerNumber2 intValue]) {
      // do something
 }
Run Code Online (Sandbox Code Playgroud)

否则它应该按原样工作!


jus*_*tin 11

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

使用比较是安全的a == b.

其他常见的运营商的行为可以预见:!=,<=,<,>=等.

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


Ram*_*Rao 9

NSInteger int1;
NSInteger int2;

int1 = 13;
int2 = 17;

if (int1 > int2)
{
    NSLog(@"works");
}
Run Code Online (Sandbox Code Playgroud)