我们如何比较两个NSInteger数字?我有两个NSIntegers,用常规方法比较它们并不起作用。
if (NSIntegerNumber1 >= NSIntegerNumber2) {
//do something
}
即使第一个值是13,第二个值是17,if循环仍然执行。
有什么想法吗?
我们如何比较两个NSInteger数字?我有两个NSIntegers,用常规方法比较它们并不起作用。
if (NSIntegerNumber1 >= NSIntegerNumber2) {
//do something
}
NSInteger
只是一个内置整型类型的typedef(例如int
或long
)。
使用 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);
}