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
。
我的 AppDelegate 中有一个强引用,当我弹出控制器时它没有被释放。
@property (nonatomic, strong) MenuViewController *menuViewController;
这个控制器根本没有被取消整理,因为我 nslog dealloc 但它没有出现。有没有办法解决这个问题而不把这个 属性 放在其他地方?我假设是因为 Appdelegate 是一个单例,并且所有属性在整个应用程序生命周期中都保持活动状态。
我不确定你是如何使用这个引用的,但你可以将它设为 weak
指针:
@property (nonatomic, weak) MenuViewController *menuViewController;
在初始化并显示 menuViewController
后设置指针。
如果您必须先初始化 menuViewController
并保留一个参考以备后用,那么您应该在不再需要时设置 self.menuViewController = nil
。