6

我正在使用ARC. 该应用程序是一个基于导航的应用程序,使用UINavigationController.

典型的用例是从“主要”UIViewController到“次要”UIViewController多次,可能多达 100 次。辅助控制器有很多静态的本地 PNG 图像,其中一些是重复的。

我正在分析应用程序,我可以看到,当从“主”控制器转到“辅助”控制器时,它分配了大约 0.8 MB,但是,当按下后退按钮时,它不会释放内存。因此,当我再次访问辅助控制器时,分配了其他 0.8 MB,依此类推...

调试时,我注意到从不调用viewDidUnload:辅助UIViewController的方法,但我还读到这是我应该将控制器保存的引用设置为零的方法。这样做viewDidDisappear:无济于事,因为我希望仅在按下后退按钮时发生这种情况,即从堆栈中弹出控制器时(在堆栈中viewDidDisappear:推送另一个控制器时也会调用该方法)。

所以问题是:在哪里我必须这样做?我可以强制调用该方法吗?这种行为是否正常(分析,在“main”->“secondary”->“main”->“secondary”-> ...的一些循环之后分配增加到 20MB)??

谢谢大家

4

1 回答 1

1

ARC只是用来减少代码和内部管理内存。有关更多详细信息,请阅读下面的教程,以便您能够更轻松地理解这些概念。

了解 Objective-C 中的自动引用计数

我希望这可以帮助你。

于 2012-05-22T10:18:40.970 回答