我在 iOS 7 中使用新的 uisearchbar 时遇到了一些问题。
在我的应用程序中,在 tableHeaderView 中有一个带有搜索栏的 tableview。
它是手工制作的(以编程方式添加)-情节提要中的 tableviewcontroller,在 viewDidLoad 方法中,我使用从 UISearchBar 继承的自定义搜索栏添加了 searchDisplayController。
所有事情都在导航控制器中进行。
在我的应用程序的逻辑中,我有时会发布这个导航控制器发送dismissViewController。
在 ios 6 中它完美运行。
但是在 ios 7 中,我在尝试释放导航控制器时遇到了崩溃。
在日志中,我有这些有趣的行:
在 viewDidLoad 的末尾添加:
for (UIView *view in self.view.subviews) {
NSLog(@"%@ %p", [view.class description], view);
}
在 ios 6 我只有这个:
2013-09-19 12:40:40.553 myApp[4182:c07] KRSearchBar 0x988bdd0
在 iOS 7 中:
2013-09-19 13:08:47.808 myApp[4690:a0b] UIView 0xa265310
2013-09-19 13:08:47.809 myApp[4690:a0b] UITableViewWrapperView 0xa25b4d0
2013-09-19 13:08:47.810 myApp[4690:a0b] KRSearchBar 0xa2591b0
释放导航控制器后,我有
2013-09-19 13:09:32.419 myApp[4690:a0b] *** -[UIView release]: message sent to deallocated instance 0xa265310
什么是 UIView?它来自哪里以及如何处理它?