2つのNSInteger数値をどのように比較しますか?私は2つのNSIntegerを持っていて、それらを通常の方法で比較しても機能しませんでした。
if (NSIntegerNumber1 >= NSIntegerNumber2) {
//do something
}
ただし、最初の値は13、2番目の値は17で、ifループが実行されています。
何か案が ?
2つのNSInteger数値をどのように比較しますか?私は2つのNSIntegerを持っていて、それらを通常の方法で比較しても機能しませんでした。
if (NSIntegerNumber1 >= NSIntegerNumber2) {
//do something
}
ただし、最初の値は13、2番目の値は17で、ifループが実行されています。
何か案が ?
NSInteger
int
組み込みの整数型 (または など)の単なる typedef ですlong
。
を使用して比較すると安全a == b
です。
他の一般的な演算子は予測どおりに動作します: !=
、<=
、 、<
など>=
。
最後に、NSInteger
の基になる型はプラットフォーム/アーキテクチャによって異なります。常に 32 ビットまたは 64 ビットであると想定するのは安全ではありません。
名前に Integer と Number が含まれているため、2 つの値を NSInteger ではなく NSNumber として宣言した可能性があります。その場合は、次のことを行う必要があります。
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);
}