5

我遇到了一个与内存相关的问题,也就是说,每当我去(segue)到第二个视图然后返回(关闭)时,内存就会不断堆积。

我的第二个 viewController 中有以下代码。但是,它不会释放内存。

    override func viewWillDisappear() {
        super.viewWillDisappear()
        self.dismissController(self)
        self.removeFromParentViewController()
}

提前致谢。

4

3 回答 3

3

可能创建了一个保留周期。在班级的某个地方,您将“自我”传递给另一个班级或结构。在课堂上对“self”进行文本搜索。

如果您需要帮助查找周期,请在此处发布所有放弃“自我”的行。

于 2015-12-30T08:18:01.773 回答
2

当控制器不调用 dealloc 时,这意味着您有一些保留周期。我们应该阅读代码以找到保留的位置。因此,您可以阅读此博客并发现您的代码存在的问题:

保留周期

于 2015-12-30T07:34:12.293 回答
0

如果您使用的是当前视图控制器,那么您应该使用下面的代码

self.dismissViewControllerAnimated(true, completion: nil)

如果您使用的是导航控制器推送,请使用以下代码

self.navigationController?.popViewControllerAnimated(true)
于 2015-12-30T07:47:38.850 回答