4

我的项目是为 IOS5 和 6 制作的。在 IOS7 启动后,我们也在升级我们的 IOS7 项目。但我在 IOS7 中面临一个问题。

当我第一次在 IOS7 模拟器中安装我的应用程序时,它会崩溃并显示以下消息。

*** -[UIViewControllerWrapperView frame]: message sent to deallocate

但是在IOS7以下它工作正常。谢谢

4

2 回答 2

1

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;    
}

让我知道这是否解决了您的问题。

于 2013-10-15T09:36:58.200 回答
0

苹果改变了类的层次结构。所以,iOS6 和 iOS7 中的 UiSearchbar 子视图是不同的。iOS7 UiTextField 下面直接是UiSearchBar 的子视图,而iOS7 UiSearchBar 的子视图是UIView,然后UITextField 是UIView 的子视图。

因此,相同的代码在 iOS7 中不起作用并崩溃。

于 2013-10-07T08:26:29.317 回答