【问题标题】:Controller in Appdelegate is never releasedAppdelegate 中的控制器永远不会被释放
【发布时间】:2015-01-26 00:33:13
【问题描述】:

我的 AppDelegate 中有一个强引用,当我弹出控制器时它没有被释放。

 @property (nonatomic, strong) MenuViewController        *menuViewController;

这个控制器根本没有被整理,因为我 nslog dealloc 并且它没有出现。有没有办法解决这个问题而不把这个属性放在其他地方?我假设是因为 Appdelegate 是一个单例,并且所有属性在整个应用生命周期中都保持活动状态。

【问题讨论】:

  • 是的,它不会被自动释放,但你可以手动将 menuViewController 设置为 nil。

标签: ios objective-c appdelegate strong-typing


【解决方案1】:

我不确定你是如何使用这个引用的,但你可以将它设为 weak 指针:

@property (nonatomic, weak) MenuViewController *menuViewController;

在你初始化并呈现menuViewController之后设置指针。

如果您必须先初始化menuViewController 并保留一个参考以供以后使用,那么您应该在不再需要它时设置self.menuViewController = nil

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    相关资源
    最近更新 更多