我的项目是为 IOS5 和 6 制作的。在 IOS7 启动后,我们也在升级我们的 IOS7 项目。但我在 IOS7 中面临一个问题。
当我第一次在 IOS7 模拟器中安装我的应用程序时,它会崩溃并显示以下消息。
*** -[UIViewControllerWrapperView frame]: message sent to deallocate
但是在IOS7以下它工作正常。谢谢
我的项目是为 IOS5 和 6 制作的。在 IOS7 启动后,我们也在升级我们的 IOS7 项目。但我在 IOS7 中面临一个问题。
当我第一次在 IOS7 模拟器中安装我的应用程序时,它会崩溃并显示以下消息。
*** -[UIViewControllerWrapperView frame]: message sent to deallocate
但是在IOS7以下它工作正常。谢谢
OS 7 确实改变了一些关于 tableviews 及其委托的规则。当然,这并没有在容易找到的地方突出显示。
但基本上,在早期版本的 iOS 中,您可以选择取消 tableView 委托和数据源。不这样做不会发送任何错误消息。
从 iOS 7 开始,您必须在您的 dealloc 中将它们设为 nil,否则可能会导致崩溃。
- (void)dealloc
{
fetchedResultsController.delegate = nil;
self.searchDisplayController.delegate = nil;
self.searchDisplayController.searchResultsDelegate = nil;
self.searchDisplayController.searchResultsDataSource = nil;
self.tableView.delegate = nil;
self.tableView.dataSource = nil;
}
让我知道这是否解决了您的问题。
苹果改变了类的层次结构。所以,iOS6 和 iOS7 中的 UiSearchbar 子视图是不同的。iOS7 UiTextField 下面直接是UiSearchBar 的子视图,而iOS7 UiSearchBar 的子视图是UIView,然后UITextField 是UIView 的子视图。
因此,相同的代码在 iOS7 中不起作用并崩溃。