Viewdid加载和卸载

Posted

技术标签:

【中文标题】Viewdid加载和卸载【英文标题】:ViewdidLoad & unloading 【发布时间】:2012-11-29 06:00:31 【问题描述】:

目前我在用完大量内存时遇到了麻烦,我正在尽我所能削减和优化我的代码在内存方面...目前我的游戏有大部分的 Nib 文件加载所有它在 ViewDidLoad 中的变量,现在我的问题是,在我的 viewDidUnload 中,我不仅应该 nil viewdidunload 中的所有内容,而且还应该释放它?就算不是IBoutlet?

另外,如果我释放它并将它归零 IBoutlet 或 NSMutablearray..我还应该在 dealloc 中释放它吗?

【问题讨论】:

【参考方案1】:

在 dealloc 上释放您的实例变量,并在 viewDidUnload 上将您的属性变量设置为 nil。

另外,为什么不在 Xcode 上为您的项目启用 ARC(自动引用计数)。 如果您不熟悉 Objective-C 的内存管理,我强烈建议您利用此功能。比垃圾收集器更好,它会自动检测不再需要的对象并释放它。

【讨论】:

我不是一个完全的内存管理新手,我只是在某些方面不确定......而且项目已经变得相当大,我担心切换到 ARC 会导致比它解决的问题更多的问题 顺便谢谢,我还应该释放和 nil 已在 ViewDidUnload 中分配的非属性变量吗? 您不应该在 ViewDidUnload 上分配任何东西,当内存不足时调用此方法。看看这个答案***.com/a/5981580/454165。它解释了 viewDidUnload 和 dealloc 的功能,它们不会同时被调用。

以上是关于Viewdid加载和卸载的主要内容,如果未能解决你的问题,请参考以下文章

C#中动态加载和卸载DLL

完全卸载和重新加载伪造查看器

如何加载和卸载Userform

使用AppDomain进行动态加载和卸载dll

AppDomain 详解二-C#中动态加载和卸载DLL

如何从程序集中加载及卸载插件