20

noobie question.. NSArray または NSMutableArray のインデックスが存在するかどうかを確認する最良の方法は何ですか。あちこち探してもダメ!!

これは私が試したことです:

if (sections = [arr objectAtIndex:4])
{
    /*.....*/
}

また

sections = [arr objectAtIndex:4]
if (sections == nil)
{
    /*.....*/
}

しかし、どちらも「範囲外」エラーをスローして続行できません

(それは私にとって解決策ではないため、try catch で返信しないでください)

前もって感謝します

4

4 に答える 4

18
if (array.count > 4) {
    sections = [array objectAtIndex:4];
}
于 2012-03-15T07:08:46.753 に答える
2

整数インデックス (例: i) がある場合、通常、次のように配列の境界をチェックすることで、このエラーを防ぐことができます。

int indexForObjectInArray = 4;
NSArray yourArray = ...

if (indexForObjectInArray < [yourArray count])
{
    id objectOfArray = [yourArray objectAtIndex:indexForObjectInArray];
}
于 2013-01-24T20:58:06.597 に答える
0

NSArrayは0からN-1の項目まで順番に並んでいることに注意してください

access item制限を超えたものにしようとするarraynil、コンパイラはからスローしbound errorます。

編集:上記の@schの回答は、NSArrayに順序付けされたアイテムが存在する必要があるかどうかを確認する方法を示しています。

于 2012-05-17T11:48:03.903 に答える