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

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

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

【问题讨论】:

    标签: ios memory-management


    【解决方案1】:

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

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

    【讨论】:

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