【问题标题】:Should I release self.view?我应该释放 self.view 吗?
【发布时间】:2011-03-21 02:14:02
【问题描述】:

我有一个关于 UIViewController 中的 self.view 的问题。

首先,在我的应用中,一切都是以编程方式创建的。通常我在 loadView 方法中创建 self.view:

self.view = [[UIView alloc]initWithFrame:SCREEN_FRAME]autorelease]; // SCREEN_FRAME is a constant

此时self.view的retain count为1。

所以,我的问题是,当我使用完视图控制器后,是否必须释放 self.view?如果是这样,我应该在哪里发布它?

提前非常感谢:)

【问题讨论】:

    标签: objective-c uiview uiviewcontroller release-management retaincount


    【解决方案1】:

    仅供可能阅读此内容的人参考,上述答案并不完全正确。 self.view 被称为 alloc、retain 和 autorelease,总retain 计数为1。retain 调用来自retain 属性和点语法。

    因此它确实需要被释放,但正如 willcodejavaforfood 所指出的,dealloc 的超级实现就是这样做的。

    谢谢

    【讨论】:

      【解决方案2】:

      self.view 添加了自动释放池,释放池时对象将被释放。你不需要明确释放。 如果您将对象添加到池中并手动释放,您将得到异常 double dealloc(因为对象被释放两次)

      【讨论】:

        【解决方案3】:

        这是通过 UIViewController 的实现为您完成的,只需确保在您的 dealloc 方法中调用 [super dealloc]

        【讨论】:

          猜你喜欢
          • 2017-04-01
          • 1970-01-01
          • 2016-07-06
          • 2011-04-27
          • 1970-01-01
          • 1970-01-01
          • 2010-12-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多