我正在使用 ARC
进行 iPhone 项目。该应用程序是一个基于导航的应用程序,使用UINavigationController
。
典型的用例是多次从“主”UIViewController
转到“次要”UIViewController
,可能最多 100 次。辅助 Controller 有很多静态的本地 PNG 图像,其中一些是重复的。
我正在分析应用程序,我可以看到,当从“主” Controller 转到“辅助” Controller 时,它如何分配大约 0.8 MB,但是当按下后退按钮时,它不会释放内存。因此,当我再次转到辅助 Controller 时,会分配其他 0.8 MB,依此类推...
调试时,我注意到辅助 UIViewController
的 viewDidUnload:
方法从未被调用,但我也读到,这就是我应该设置为的方法nil Controller 保存的引用。在 viewDidDisappear:
中这样做并没有帮助,因为我希望仅在按下后退按钮时发生这种情况,即从堆栈中弹出 Controller 时(viewDidDisappear:
当将另一个 Controller 压入堆栈时也会调用该方法)。
所以问题是:我必须在哪里这样做吗?我可以强制调用该方法吗?这种行为是否正常(分析,在“主”->“次要”->“主”->“次要”-> ... 的一些循环后,分配量达到 20MB)? ??
先谢谢大家了
最佳答案
ARC只是用来减少代码和内部管理内存。 有关更多详细信息,请阅读下面的教程,以便您能够更轻松地理解这些概念。
Understanding Automatic Reference Counting in Objective-C
希望这对您有所帮助。
关于iphone - 使用 ARC 时何时将对象设置为 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10699491/