我们如何比较两个 NSInteger 数字?我有两个 NSIntegers 并以常规方式比较它们不起作用。
if (NSIntegerNumber1 >= NSIntegerNumber2) {
//do something
}
尽管第一个值为 13,第二个值为 17,但 if 循环正在执行
任何的想法 ?
我们如何比较两个 NSInteger 数字?我有两个 NSIntegers 并以常规方式比较它们不起作用。
if (NSIntegerNumber1 >= NSIntegerNumber2) {
//do something
}
尽管第一个值为 13,第二个值为 17,但 if 循环正在执行
任何的想法 ?
NSInteger
只是内置整数类型(例如int
or long
)的 typedef。
使用 比较是安全的a == b
。
其他常见运算符的行为可预测:!=
, <=
, <
,>=
等。
最后,NSInteger
的底层类型因平台/架构而异。假设它始终是 32 位或 64 位是不安全的。
好吧,由于名称中有 Integer 和 Number,您可能已将这两个值声明为 NSNumber 而不是 NSInteger。如果是这样,那么您需要执行以下操作:
if ([NSIntegerNumber1 intValue] >= [NSIntegerNumber2 intValue]) {
// do something
}
否则它应该按原样工作!
NSInteger int1;
NSInteger int2;
int1 = 13;
int2 = 17;
if (int1 > int2)
{
NSLog(@"works");
}
比较整数时,使用它可以正常工作:
int a = 5;
int b = 7;
if (a < b) {
NSLog(@"%d is smaller than %d" a, b);
}