2

objectAtIndex:x で nsmutableArray にアクセスしようとすると、このインデックスにオブジェクトがない場合、アプリは常にクラッシュします。

私の質問は次のとおりです。アプリをクラッシュさせずに、このインデックスに何かがあるかどうかを確認するにはどうすればよいですか?

私の質問を理解していただければ幸いです。ありがとう、アレックス

4

5 に答える 5

5

インデックスが配列の境界範囲内にあるかどうかを確認します。

   if (index >=0 && index < [myArray count])
    ...
于 2009-11-27T14:14:18.540 に答える
1

NSArrayには「count」というメソッドがあります。可変配列の呼び出しを指定すると、配列内の要素の数がわかります。

于 2009-11-27T14:13:54.707 に答える
1

配列の範囲内にいる場合、配列には値[array count]のギャップを含めることができないため、常に0から。までの特定のインデックスにオブジェクトがあります。nil

于 2009-11-27T14:37:49.370 に答える
1

メソッドを使用しcountて配列の境界内にいることを確認するか、使用しようとしたときに例外をキャッチしobjectAtIndex:ます。カウントで範囲をチェックすると、例外をキャッチするよりもオーバーヘッドがはるかに少なくなります。

ご存じないかもしれませんが、NSArray には「穴」が許可されていません。インデックス 0 から配列の末尾 ([ array count]-1) までのオブジェクトはすべてアクセス可能です。

于 2009-12-01T17:27:52.773 に答える
0

これを試して

for(i=0; i< [myMutableArrayObject count]; i++) {
NSLog(@"%@",[[myMutableArrayObject objectAtIndex: i] myMethodDefined]);
}

ここでは、MutableArray オブジェクト内のオブジェクトの数を返すcountと呼ばれる事前定義されたメソッドを使用してから、0 から (count – 1) までの間隔でオブジェクトを反復する別のメソッドobjectAtIndexを使用しています。

よろしく、 サミット

于 2009-11-30T17:28:37.480 に答える