【问题标题】:-[UIViewControllerWrapperView frame]: message sent to deallocated instance getting Crash in IOS7-[UIViewControllerWrapperView 框架]:发送到释放实例的消息在 IOS7 中崩溃
【发布时间】:2013-08-07 02:26:04
【问题描述】:

我的项目是为 IOS5 和 6 制作的。在 IOS7 发布后,我们也在升级我们的 IOS7 项目。但是我在 IOS7 中遇到了一个问题。

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

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

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

【问题讨论】:

  • 它是测试版。它有一些疯狂的错误。不要修复,因为您将在发布后修复您的修复。
  • 我遇到了同样的问题。你找到解决办法了吗?
  • 是的。如果我们弹出导航控制器,这通常会发生。但我仍然无法解决问题。希望有人提出解决方案。
  • 你在哪里调用这个方法......!实际上,现在在 iOS 7 中,呈现和关闭视图控制器在不同的视图中工作。在进行任何与视图相关的调用之前,您必须确保您的视图在内存中。

标签: ios ipad uiviewcontroller crash ios7


【解决方案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;    
}

如果这解决了您的问题,请告诉我。

【讨论】:

    【解决方案2】:

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

    所以相同的代码在 iOS7 中无法运行并崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      相关资源
      最近更新 更多