iOS KERN_INVALID_ADDRESS使用UISearchBar弹出到根视图控制器时崩溃

时间:2014-02-05 15:28:34

标签: objective-c crash uisearchbar poptoviewcontroller

我的应用程序中存在一个问题,我在导航控制器中有以下结构:

RootView(菜单)-push->带有UISearchDisplay控制器的UITableViewController - 选择行推送 - >所选对象的详细视图控制器

在详细信息视图控制器上,有一个选项可以返回主菜单:

[self.navigationController popToRootViewControllerAnimated:YES];

所有这些在模拟器上都能正常工作。在iPhone 5S上进行测试时,我遇到了崩溃。

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000001d2a4beb8
Triggered by Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                 0x000000018f8479d0 objc_msgSend + 16
1   UIKit                           0x000000018689309c -[UISearchBar willMoveToSuperview:] + 64
2   UIKit                           0x0000000186a6cea0 __UIViewWillBeRemovedFromSuperview + 188
3   UIKit                           0x000000018679c3f0 -[UIView(Hierarchy) removeFromSuperview] + 68
4   UIKit                           0x000000018679f4f8 -[UIView dealloc] + 420
5   UIKit                           0x0000000186883350 -[UIScrollView dealloc] + 968
6   UIKit                           0x0000000186943c3c -[UITableView dealloc] + 1300
7   UIKit                           0x0000000186934108 -[UIViewController dealloc] + 460
8   UIKit                           0x00000001869b85f8 -[UITableViewController dealloc] + 288

它似乎崩溃了,因为由于某种原因它没有解除分配UISearchBar。当我删除搜索显示控制器时,一切正常。

此外,如果我使用UINavigationController提供的“后退”按钮,则不会发生崩溃。只有当我从一个ViewController中弹出到根目录时,它在堆栈上比带有搜索的导航控制器更高。

任何帮助都会受到赞赏,因为我完全被难过了。

  • 编辑 - 另外一个发现 - 所有代表似乎都被恰当地联系起来。我正在使用Storyboard来设计工作流程。如果我删除了UISearchBar,但是不要删除SearchDisplayController,它不会崩溃。它似乎只依赖于UISearchBar元素(根据崩溃日志有意义)。

0 个答案:

没有答案