iOS ARC (?) крадет мою панель поиска - PullRequest
1 голос
/ 17 января 2012

Я сделал iOS5-приложение, очень похожее на Apple-приложение Contacts. Панель поиска, serachdisplaycontroller вид таблицы. Когда пользователь касается ячейки, отображается подробный вид (модальный стиль ...) с использованием сегментов. Все работает хорошо, но ... Я видел сбой моего приложения на реальном устройстве iPhone 4S, когда приложение спало в фоновом режиме в течение нескольких часов, а затем снова стало активным. Аварию невозможно воссоздать при определенных обстоятельствах. Хорошо, какая-то проблема с памятью ...

На iOS-симуляторе я вижу сбой, если

-> Касание ячейки (или кнопка для просмотра настроек) -> Представлен подробный вид (или вид настроек) -> Выдается предупреждение о симуляции памяти -> Пользователь пытается вернуться назад с помощью кнопки «Готово».

- (IBAction)done:(id)sender
{
    [self.delegate detailedViewControllerDidFinish:self];
}

- (void)detailedViewControllerDidFinish:(DetailedViewController *)controller
{    
    [self dismissModalViewControllerAnimated:YES];
}

2012-01-17 19: 58: 43.777 MyApp [89968: f803] * Завершение работы приложения из-за необработанное исключение 'NSUnknownKeyException', причина: '[setValue: forUndefinedKey:]: этот класс не является значением ключа совместимый с кодировкой для ключа searchBar. ' * Первый стек вызовов вызовов: ...

По какой-то причине serachbardisplaycontrol становится недействительным (я думаю), когда ОС хочет вернуть часть памяти моего приложения

Есть идеи?

1 Ответ

1 голос
/ 06 декабря 2012

Я думаю, что я успешно решил это.Это сводится к тому, что панель поиска активна, когда вызвано состояние нехватки памяти.Когда вы попали в состояние нехватки памяти, сделайте следующее:

[self.searchDisplayController setActive:NO animated:NO];

Это должно исправить это.

...