繁体   English   中英

使用ARC时将对象设置为nil?

[英]When set objects to nil when using ARC?

我正在使用ARC的iPhone项目。 该应用程序是基于导航的应用程序,使用UINavigationController

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

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

调试,我注意到从未调用辅助UIViewController viewDidUnload:方法,但我也读到了那个我应该设置为nil控制器保存的引用的方法。 viewDidDisappear:执行此操作viewDidDisappear:没有用,因为我希望仅在按下后退按钮时才会发生这种情况,即从堆栈中弹出控制器时(在堆栈上推送另一个控制器时也会调用viewDidDisappear:方法)。

所以问题是:我有什么必须这样做的吗? 我可以强制调用该方法吗? 这种行为是否正常(分析,在“主要” - >“次要” - >“主要” - >“次要” - > ......的某些周期后,分配达到20MB?

谢谢大家

ARC仅用于减少代码并在内部管理内存。 有关详细信息,请阅读以下教程,以便您能够更轻松地理解这些概念。

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

我希望这可以帮到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM