NSMutableArray removeAllObjects проблема - PullRequest
1 голос
/ 10 ноября 2009

Вот мой сценарий: Я строю искатель местоположения, используя iPhone mapkit. У меня в массиве приложения хранится массив для хранения информации о местонахождении магазина (название, адрес и т. Д.). Когда определенная кнопка нажата, представление вставляется с текстовым полем и кнопкой, которая выполняет поиск ввода пользователя и возвращает всю необходимую информацию.

Все это прекрасно работает, и точки наносятся на карту. Однако, если я иду и пытаюсь выполнить поиск во второй раз, приложение вылетает. Я пытаюсь удалить все объекты из массива, когда начинается анализатор xml:

- (void)parserDidStartDocument:(NSXMLParser *)parser {
    [dataTempForSearch removeAllObjects];
}

и отладчик просто помещает стрелку в вызов метода без реального объяснения причин ...

Кто-нибудь сталкивался с подобным сценарием раньше? какие-либо мысли о том, почему это может происходить только во второй раз, когда действие выполняется?

Ответы [ 2 ]

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

MapKit имеет некоторые очень неприятные проблемы. Когда вы получите странное поведение отладчика, поместившего стрелку в этой строке, взгляните на предоставленный вам стек вызовов (это обычно можно увидеть в режиме отладки слева). Держу пари, это связано с MapKit.

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

Трудно сказать, основываясь только на одной строке кода. Вероятно, это проблема управления памятью, но что конкретно я не могу сказать.

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

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