Objective-C:发布视图的点

Posted

技术标签:

【中文标题】Objective-C:发布视图的点【英文标题】:Objective-C: Point of releasing a View 【发布时间】:2010-06-26 19:23:16 【问题描述】:

我用 TableView 制作了一个静态主菜单。有时它会崩溃,因为我的子视图已经释放了一个子视图。

在本地对象的dealloc方法中释放一个View也可以,而不是那个:

[NavController pushViewController:self.AnotherView animated:YES];
[self.AnotherView release]; //This line into (void)viewDidLoad

AnotherView 在头文件中定义为属性,并在 .m 文件中同步

当我使用 dealloc 方式时,它在设备上运行良好,但我需要知道这是否正确。

【问题讨论】:

【参考方案1】:

您只为您自己initalloc 的对象调用释放。如果它是您班级的属性,那么您班级的dealloc 中的release

所以在你的情况下,除非你在示例代码上方几行 init anotherView (相同的方法),在你将导致泄漏/SIG_ABORT 的地方调用 release,因为你已经这样做了过早的。

请随意发布更多代码,特别是如何分配另一个视图,您可能会得到更具体的答案。

【讨论】:

发布将导致双重释放,而不是泄漏。 是的。我试图了解西蒙收到的错误。但是,这是一个过早的发布。 TWSS

以上是关于Objective-C:发布视图的点的主要内容,如果未能解决你的问题,请参考以下文章

在 Objective-C 中实现纯虚方法

Objective-c中的点符号

Swift:关闭 viewController 1 然后呈现 viewController 2

带有延迟 NSMenu 的 NSButton - Objective-C/Cocoa

如何/在哪里声明用于编写objective-c代码的接口、实现、程序格式中的实例变量?

Objective-C Block与函数指针比较