в моем приложении 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 в моем примере). Благодарность!