【问题标题】:iPhone - Should I manually release my customViewController's view in its dealloc method?iPhone - 我应该在其 dealloc 方法中手动释放我的 customViewController 视图吗?
【发布时间】:2011-10-12 21:07:15
【问题描述】:

我正在使用导航控制器将自定义 viewController 推送到屏幕上。当我完成并弹出它时,我发现为 customViewController 调用了 dealloc 方法,但从未调用过“viewDidUnload”方法。这是否意味着视图仍然存在?如果是这样,这对我来说可能是一个记忆问题。如果是这种情况,我是否应该在我的 customViewContoller 中释放我的 dealloc 方法中的视图?谢谢。

【问题讨论】:

    标签: iphone uiviewcontroller uinavigationcontroller


    【解决方案1】:

    这不是必需的。当您的UIViewController 子类收到-dealloc 时,您应该释放所有保留的属性。然后它将到达[super dealloc]。不能肯定地说,但 UIViewController 上的-dealloc 也应该处理转储它的所有保留属性。这样你的视图就会得到适当的释放。

    不知道为什么-viewDidUnload 没有被调用,但这应该没关系。如果在弹出视图控制器时应用程序的内存压力较低,则可能会在不释放整个控制器的情况下卸载视图。

    【讨论】:

      【解决方案2】:

      通常,您在推送视图控制器后释放它。例如:

      UIViewController *myVC = [[UIViewController alloc] init];
      [[self navigationController] pushViewController:myVC animated:YES];
      [myVC release];
      

      【讨论】:

      • 哦,是的,我做到了。我说的是 viewController 的视图。
      • Tim,对于 onnoweb 所写的内容,一切都会好起来的。是否调用了 dealloc 方法?检查一下。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 2011-03-21
      • 2011-03-21
      相关资源
      最近更新 更多