我是iOS开发的新手,所以如果我的问题听起来不值得在stackoverfow上,我会提前道歉。
就结构而言,我正在构建一个带有HomeController和游戏玩法ViewController的简单游戏。
我添加了一个非常简单的函数来杀死活动,以确保不会遗漏任何东西,这会在它离开游戏玩法ViewController之前被调用。以下是我正在使用的代码:
private func cleanThis(){
//removing objects from array
activeEnemies.removeAll()
//removing objects from array
activeTargets.removeAll()
//removing the rest
let subViews = self.view.subviews
for subview in subViews{
subview.removeFromSuperview()
}
}
我必须在这里遗漏一些东西,当我在没有移动到主页的情况下测试它时,会有38MB的恒定内存活动。我还没想到如何监视ViewController中仍然存在的内容。
非常感谢任何帮助。
P.S。当ViewController中没有对象时,内存活动应为0,这是正确的吗?
答案 0 :(得分:2)
iOS不使用垃圾收集器。它使用了一种叫做automatic reference counting的东西。你遇到麻烦的主要方式是周期性参考(A强烈引用B,它强烈引用A)。
Xcode Instruments将向您显示所有内存分配和解除分配,并且还可以显示内存泄漏。这是一个截图,用于演示: