0

単純なNSArrayを作成し、その配列からランダムなインデックスを取得してintとして格納しますが、0、1、または2を返すことだけを期待している場合でも、長いintである必要があるという警告が表示されます。それは問題ですが、理由がわかりません。

NSArray *randomWordList = [NSArray arrayWithObjects:@"Hello", @"Test", @"Send", nil];  
int randomWordIndex = rand() % [randomWordList count];`
4

2 に答える 2

4

NSArrayのcountメソッドNSUIntegerは、unsigned long64ビットビルド用のを返します。コンパイラが警告する理由は、int保持する数値の範囲が。よりも小さいためlong、データが失われる可能性があることを警告しているためです。

に変更int randomWordIndexするだけNSUInteger randomWordIndexです。

于 2012-12-04T03:08:10.420 に答える
0

あなたはそれをキャストすることができます。配列は動的に割り当てられるため、コンパイラは要素数を認識できないため、NSUIntegerである最大値を想定するだけであることに同意する必要があります。

于 2012-12-04T03:08:20.043 に答える