1

我对 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?如果是这样,我应该在哪里释放它?

首先十分感谢 :)

4

3 回答 3

3

这是通过 UIViewController 的实现为你完成的,只要确保你调用[super dealloc]了你的 dealloc 方法。

于 2010-07-26T13:25:58.897 回答
0

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

于 2010-07-26T14:39:03.603 回答
0

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

因此它确实需要发布,但正如 willcodejavaforfood 指出的那样,dealloc 的超级实现可以做到这一点。

谢谢

于 2011-12-05T17:07:39.273 回答