ПЛОХОЙ ДОСТУП EXC при использовании UISearchBar

Думаю, мне нужен еще один хороший совет. До сих пор мое решение, казалось, работало хорошо, но теперь ...

Хорошо, факты:

  1. У меня обычный UIViewController
  2. Сверху UINavigationBar, за ним UISearchBar, изначально скрытый
  3. Внизу UIToolBar
  4. Мой главный контроллер представления поддерживает UISearchBarDelegate

Переключатель на UIToolBar переключает видимость UISearchBar

    if (show) {
        [searchBar setShowsCancelButton:TRUE animated:TRUE];
        [navigationBar setHidden:TRUE];
        [searchBar becomeFirstResponder];
    }
    else {
        [navigationBar setHidden:FALSE];
        [searchBar setShowsCancelButton:FALSE animated:TRUE];
    }
    searchIsVisible = !searchIsVisible;

Вокруг есть какая-то анимация, но я, например, отбросил это. Он работает хорошо, я могу ввести строку поиска и получить к ней доступ с помощью searchBarSearchButtonClicked:. Я также могу реагировать на "searchBarCancelButtonClicked:"

Я либо не замечал этого раньше, либо это происходит прямо сейчас - я иногда ловлю EXC BAD ACCESS без дополнительного уведомления. Я почти уверен, что «[searchBar статьFirstResponder];» Заявление является причиной этого, потому что я тоже могу спровоцировать его нажатием на строку поиска.

К сожалению, я не могу понять, в чем причина. Должен ли я предоставить еще один метод делегата, как два, которые у меня есть прямо сейчас?

Любой указатель приветствуется.


person neil    schedule 02.12.2009    source источник


Ответы (1)


Я предполагаю, что searchBar освобождается, а вы об этом не знаете. Вероятно, потому что ваш контроллер представления освобождается и / или ваша иерархия представлений. Попробуйте взломать свои сделки и посмотреть, имеет ли смысл их возникновение.

person Steve Weller    schedule 03.12.2009