Appdelegate 中的控制器永远不会被释放

Controller in Appdelegate is never released

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

 @property (nonatomic, strong) MenuViewController        *menuViewController;

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

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

@property (nonatomic, weak) MenuViewController *menuViewController;

在初始化并显示 menuViewController 后设置指针。

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