NSMutablearray removeallojects вылетает мое приложение. Прекрасно работает в NSZombie - PullRequest
2 голосов
/ 28 июня 2011

Вот так я и объявляю свои NSMutablearray

 self.otherDealsList = [[NSMutableArray alloc] init];

Я получу некоторые значения из веб-сервиса и вставлю их в этот массив. Этот изменяемый массив используется для заполнения моих данных просмотра таблицы. Но когда пользователь нажимает кнопку, я хочу получить новые данные из веб-службы и вставить их обратно в изменяемый массив.

В процессе замены содержимого изменяемого массива, если пользователь щелкает или прокручивает представление таблицы, приложение будет аварийно завершать работу. Поэтому, чтобы избежать этого, я сначала попытался очистить табличное представление путем очистки изменяемого массива и перезагрузить таблицу. Это мой код, чтобы сделать массив пустым

if ([self.otherDealsList count] > 0) {

                [self.otherDealsList removeAllObjects];
                [tableView reloadData];
            }

Но мое приложение продолжает падать ("Bad access"), когда оно запускается на линии 'removeallobjects'. Я почти уверен, что нигде не выпустил.

Я также пытался запустить его, используя NSZombie Thingy. Но это совсем не рухнет.

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

Я связываю вам еще один вопрос, очень похожий на ваш.Скорее всего, вы освобождаете некоторые объекты в NSMutableArray перед вызовом removeAllObjects, и это является причиной вашей проблемы.Пожалуйста, прочитайте больше здесь - NSMutableArray removeAllObjects crash .

1 голос
/ 28 июня 2011

Я полагаю, вы можете сохранить свой объект в дополнительное время.

self.otherDealsList = [[[NSMutableArray alloc] init] autorelease];
...