Доступ NSMutableArray к индексу без значения - PullRequest
2 голосов
/ 27 ноября 2009

, если я пытаюсь получить доступ к nsmutableArray с помощью objectAtIndex: x и если у меня нет объекта с этим индексом, мое приложение всегда падает.

Итак, мой вопрос: как я могу проверить, есть ли что-то в этом индексе, без сбоев приложения?

Надеюсь, вы понимаете мой вопрос. Спасибо, Алекс

Ответы [ 5 ]

5 голосов
/ 27 ноября 2009

Проверьте, находится ли ваш индекс в пределах границ массива:

   if (index >=0 && index < [myArray count])
    ...
1 голос
/ 01 декабря 2009

У вас есть две опции: используйте метод count, чтобы убедиться, что вы находитесь в пределах массива, или перехватите исключение при попытке использовать objectAtIndex: Проверка диапазона с счетчиком будет намного меньше затрат, чем перехват исключение.

В случае, если вы не знали - в NSArray не допускаются «дыры» - все объекты от индекса 0 до конца массива ([array count]-1) будут доступны.

1 голос
/ 27 ноября 2009

Если вы находитесь в пределах границ массива, у вас всегда будет объект с определенным индексом от 0 до [array count], так как массив не может содержать пробелы в значениях nil.

1 голос
/ 27 ноября 2009

NSArray имеет метод с именем "count". Вызовите count для вашего изменяемого массива, и он сообщит вам количество элементов в массиве.

0 голосов
/ 30 ноября 2009

Попробуйте это

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

Здесь мы используем предопределенный метод с именем count , который возвращает количество объектов в объекте MutableArray. а затем другой метод objectAtIndex , который выполняет итерацию объектов в интервале от 0 до (количество - 1).

С уважением, Sumit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...