Можете ли вы инициализировать массив с массивом, который мог быть выпущено?

StackOverflow https://stackoverflow.com/questions/8368441

Вопрос

Я пытаюсь выяснить проблему индекса безграничного индекса, которую я получаю в своем newArray объект. Я прохожу oldArray для метода, а затем используйте следующее:

newArray = [[NSMutableArray alloc] initWithArray:oldArray];

Если oldArray был выпущен, получу ли я ошибку на этой строке, или я получу исключение вне границ, когда попытаюсь получить доступ newArray?

Это было полезно?

Решение

Нет, приведенный выше код создает копию oldArray в newArray. Анкет Изменение oldArray в любом случае (включая его выпуск) не повлияет на newArray, и в любом случае, безусловно, не вызовет исключение границ.

Наиболее вероятной причиной является то, что oldArray является nil На данный момент, так что newArray это пустой массив, когда вы не ожидаете этого. Попеременно, oldArray Может быть, не так много элементов, как вы думаете. Исключение границы означает, что вы читаете через конец массива. Это не имеет никакого отношения к управлению памятью.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top