проблема с модальным представлением контроллера табличного представления, который имеет контроллер отображения поиска, и возвращение выбранной ячейки

в моем приложении iOS я хочу представить пользователю таблицу элементов с помощью UITableViewController, попросить их выбрать элемент, а затем вернуть этот элемент обратно другому контроллеру представления. Я могу сделать это успешно, определив протокол и метод делегирования для контроллера табличного представления, представив контроллер табличного представления модально, затем отклонив его, когда пользователь выбирает элемент, и вернув этот элемент контроллеру представления-делегата. но, если я также реализую контроллер отображения поиска для представления таблицы (чтобы пользователь мог искать конкретный элемент в более длинном списке), я столкнусь с проблемой памяти. Я изменил пример Apple TableSearch, чтобы продемонстрировать это, и разместил код по адресу https://github.com/pistachionut/Table-Search-Example

Короче говоря, приложение обычно аварийно завершает работу с EXC_BAD_ACCESS сразу после выбора ячейки в табличном представлении. запуск его с NSZombieEnabled указывает, что контроллер табличного представления вызывается - [UISearchDisplayController _destroyManagedTableView] после того, как его счетчик сохраненных данных достиг 0. Кто-нибудь знает, почему это происходит? Я не думаю, что делаю какое-либо дополнительное освобождение контроллера табличного представления, помимо того, за что я несу ответственность. Я создаю его с помощью alloc и initWithNibName, представляю его модально, а затем немедленно освобождаю (см. - (IBAction) showProductPicker: (id) sender в файле PickProductViewController.m в моем примере). Благодарность!


person pistachionut    schedule 20.05.2011    source источник
comment
ОБНОВЛЕНИЕ: я экспериментировал с программным созданием UISearchBar и UISeachDisplayController и обнаружил, что это устраняет проблему с памятью. см. класс MainViewController2 в моем опубликованном примере.   -  person pistachionut    schedule 21.05.2011


Ответы (1)


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

person pistachionut    schedule 22.05.2011