8

2つのNSInteger数値をどのように比較しますか?私は2つのNSIntegerを持っていて、それらを通常の方法で比較しても機能しませんでした。

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

ただし、最初の値は13、2番目の値は17で、ifループが実行されています。

何か案が ?

4

4 に答える 4

12

NSIntegerint組み込みの整数型 (または など)の単なる typedef ですlong

を使用して比較すると安全a == bです。

他の一般的な演算子は予測どおりに動作します: !=<=、 、<など>=

最後に、NSIntegerの基になる型はプラットフォーム/アーキテクチャによって異なります。常に 32 ビットまたは 64 ビットであると想定するのは安全ではありません。

于 2012-02-28T05:21:44.187 に答える
11

名前に Integer と Number が含まれているため、2 つの値を NSInteger ではなく NSNumber として宣言した可能性があります。その場合は、次のことを行う必要があります。

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

それ以外の場合は、そのまま動作するはずです!

于 2012-02-28T05:19:25.063 に答える
9
NSInteger int1;
NSInteger int2;

int1 = 13;
int2 = 17;

if (int1 > int2)
{
    NSLog(@"works");
}
于 2012-02-28T05:25:10.287 に答える
2

整数を比較する場合、これを使用すると、問題なく機能します。

int a = 5;
int b = 7;

if (a < b) {

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

}
于 2012-02-28T11:17:04.820 に答える