【发布时间】:2015-05-28 16:06:13
【问题描述】:
我正在试验 Swift 中的内存泄漏,我想在调用 didReceiveMemoryWarning() 函数时清除内存。
我的应用底部有一个标签栏,每个标签栏都有自己的navigationController。从这个控制器,视图被推送到堆栈上。
如果我收到内存警告,我会弹出导航控制器中的每个视图(参见示例)
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
for var i = viewControllers.count; i > 0; i-- {
popViewControllerAnimated(false);
}
}
所有视图都被成功移除并显示了每个选项卡的“根视图”,但是直到我再次按下选项卡时内存才会释放。
有人知道我做错了什么吗?
【问题讨论】:
-
“但是内存不会释放”——你怎么知道?
-
“我用 IOS 模拟器测试了内存使用情况,如果我使用 navigationController?.popViewControllerAnimated(true) 弹出视图,内存会减少,如果我在另一个选项卡中弹出它们不会减少”
-
@Spidfire 你找到解决方案了吗?
标签: ios swift memory-leaks