EXC ПЛОХОЙ ДОСТУП при использовании UISearchBar - PullRequest
1 голос
/ 02 декабря 2009

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

ОК, факты:

  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];» Причиной этого является утверждение, потому что я могу спровоцировать его, также нажав на строку поиска.

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

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

1 Ответ

0 голосов
/ 03 декабря 2009

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

...