Увольнение UIActionSheet дает EXC_BAD_ACCESS - PullRequest
3 голосов
/ 08 августа 2011

У меня есть приложение с UITableView, вложенное в UITabBarController, и у меня есть метод, который дает мне EXC_BAD_ACCESS, когда он вызывается из метода UIActionSheetDelegate clickedButtonAtIndex:

Метод, который (иногда) вызывает проблему, состоит в том, чтоназывается updateTaskArray.По сути, он выполняет выборку Core Data, которая настраивает NSMutableArray «taskArray», который является свойством viewController (который делегат tableView использует для настройки его ячеек), а затем его последняя строка

[self.tableView reloadData];

Дело в том,в большинстве случаев он работает нормально, но выдает ошибку только при вызове из UIActionSheetDelegate.Когда я запускаю его с NSZombieEnabled, он сообщает мне

*** -[UITabBarButton setAlpha:]: message sent to deallocated instance 0x5c2e760

И с точками останова он не дает EXC_BAD_ACCESS до тех пор, пока не завершится метод делегата UIActionView (и updateTaskArray внутри него).Таблица UIActionSheet представлена ​​с:

[actionSheet showFromTabBar:self.tabBarController.tabBar];

, поэтому мне интересно, означает ли это, что он закрывает actionSheet, вызывающий проблему ... но он не выдает никакой ошибки, если я не вызываюupdateTaskArray от делегата ...

Я не совсем уверен, что будет хорошим следующим шагом, поскольку [UITabBarButton setAlpha:] не является методом, который я называю "собой", и кажется, что произошла ошибкапосле того, как код, который я на самом деле «написал», уже запущен - есть какие-нибудь предложения о том, с чего начать приближаться к этому?

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

я изменил

[actionSheet showFromTabBar:self.tabBarController.tabBar];

до

[actionSheet showFromToolbar:self.navigationController.toolbar];

И теперь работает нормально. TabBarController является родителем контроллера навигации, я считаю, что ему не понравилось, что я поднялся на один уровень выше.

0 голосов
/ 08 августа 2011

Посмотрите на ваши заявления о выпуске. Вы выпускаете UITabBarButton, или, возможно, всю панель вкладок, когда вы не должны. Обзор принципов управления памятью для iOS.

...