【问题标题】:Unwind segue does not release my view controllersUnwind segue 不会释放我的视图控制器
【发布时间】:2015-02-13 09:54:21
【问题描述】:

我有这样的事情:

我的rootViewControllernavigationBar - 让它成为A。其余的都是正常的UIViewControllers,并通过push(通过按钮IBAction 方法)以编程方式进行。

但是从 D -> A 开始,我使用 unwind segue(也通过 performSegueWithIdentifier:sender:)。

这里的问题是,当执行 segue 时,B、C 和 D 根本不是deallocated。这不仅会导致内存泄漏问题,而且我的计时器仍在运行。我不确定为什么会这样。我认为 unwind segues 应该为你处理所有这些?知道为什么吗?

【问题讨论】:

    标签: ios objective-c memory-management uiviewcontroller xcode-storyboard


    【解决方案1】:
    -(void)viewWillDisappear:(BOOL)animated{
        [timer invalidate];
        timer = nil;
    }
    

    希望这对您有所帮助...其他控制器上的计时器无效

    【讨论】:

      【解决方案2】:

      问题在于NSTimer

      NSTimer 保留他们的目标。因此,如果视图控制器使用 target:self 启动计时器,只要计时器正在运行,它就不会被释放。

      您可以获取更多信息here

      【讨论】:

        猜你喜欢
        • 2016-12-31
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 2014-10-04
        • 2014-07-17
        • 1970-01-01
        • 2015-06-14
        • 2013-04-06
        相关资源
        最近更新 更多