2012-02-28 15 views
6

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

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

本家、ループは

任意のアイデアを実行している場合、最初の値は13であり、第2の値は17でしたか?

+1

あなたがそれを行う方法ですこと。それらの値を再確認してください: 'if'の直前にブレークポイントを設定し、期待通りのものであることを確認してください。 –

+0

NSIntegerはintのalisです。それはうまくいくはずです。 他の賢明なNSIntegerNumber1変数の種類を指定します。 –

+0

これらはNSIntegerの数ですか?私の推測ではこれらはNSNumbersであり、あなたはポインタを比較しようとしています。 – SVGreg

答えて

9
NSInteger int1; 
NSInteger int2; 

int1 = 13; 
int2 = 17; 

if (int1 > int2) 
{ 
    NSLog(@"works"); 
} 
11

名前に整数と番号があるため、NSIntegerの代わりにNSNumberという2つの値を宣言している可能性があります。その場合は、次の手順を実行する必要があります。

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

それ以外の場合はそのまま動作します。

7

NSIntegerは、組み込み型(たとえば、intまたはlong)のtypedefです。

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

その他の一般的な演算子は、予測可能に動作します。!=,<=<>=など

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

+0

推論を説明するので、これを投票する必要があります –

2

これを使用して、整数を比較し、うまく動作します:

int a = 5; 
int b = 7; 

if (a < b) { 

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

}