iOS Swift popViewController没有从内存中释放吗?

时间:2019-03-21 11:13:37

标签: swift memory memory-leaks

我在关闭{%action%}时遇到问题,该.liquid是从uiNavigationController附加并打开的,当我关闭/重新打开B UIViewcontroller时,每次打开它都会增加内存,但是当我关闭它时却什么也没有碰巧记忆不会消失。

我尝试了以下所有相同的代码:

UIViewcontroller

DispatchQueue.main.async {[weak self] in
    guard let strongSelf = self else { return }
    strongSelf.navigationController?.pushViewController(vc, animated: true)
}

DispatchQueue.main.async {[unowned self] in
    self.navigationController?.pushViewController(vc, animated: true)
}

B self.navigationController?.pushViewController(vc, animated: true) 在情节提要中只有1张图像,没有代码。

  

anyidea如何从内存中释放封闭的“ pop” UIVIewcontroller?

1 个答案:

答案 0 :(得分:1)

  • 确保您没有为该viewController设置任何强指针(例如,导航控制器),否则该控制器将被导航控制器保留
  • 尝试避免对IBOutlets使用强大的属性。

  • 如果您在代码中使用self,请使用[weak self] Swift Blocks确保它是可选的self。 如果没有其他强大的指针,它将被释放