objectAtIndex:x で nsmutableArray にアクセスしようとすると、このインデックスにオブジェクトがない場合、アプリは常にクラッシュします。
私の質問は次のとおりです。アプリをクラッシュさせずに、このインデックスに何かがあるかどうかを確認するにはどうすればよいですか?
私の質問を理解していただければ幸いです。ありがとう、アレックス
objectAtIndex:x で nsmutableArray にアクセスしようとすると、このインデックスにオブジェクトがない場合、アプリは常にクラッシュします。
私の質問は次のとおりです。アプリをクラッシュさせずに、このインデックスに何かがあるかどうかを確認するにはどうすればよいですか?
私の質問を理解していただければ幸いです。ありがとう、アレックス
インデックスが配列の境界範囲内にあるかどうかを確認します。
if (index >=0 && index < [myArray count])
...
NSArrayには「count」というメソッドがあります。可変配列の呼び出し数を指定すると、配列内の要素の数がわかります。
配列の範囲内にいる場合、配列には値[array count]
のギャップを含めることができないため、常に0から。までの特定のインデックスにオブジェクトがあります。nil
メソッドを使用しcount
て配列の境界内にいることを確認するか、使用しようとしたときに例外をキャッチしobjectAtIndex:
ます。カウントで範囲をチェックすると、例外をキャッチするよりもオーバーヘッドがはるかに少なくなります。
ご存じないかもしれませんが、NSArray には「穴」が許可されていません。インデックス 0 から配列の末尾 ([ array count]-1
) までのオブジェクトはすべてアクセス可能です。
これを試して
for(i=0; i< [myMutableArrayObject count]; i++) {
NSLog(@"%@",[[myMutableArrayObject objectAtIndex: i] myMethodDefined]);
}
ここでは、MutableArray オブジェクト内のオブジェクトの数を返すcountと呼ばれる事前定義されたメソッドを使用してから、0 から (count – 1) までの間隔でオブジェクトを反復する別のメソッドobjectAtIndexを使用しています。
よろしく、 サミット