【发布时间】:2012-09-15 09:19:10
【问题描述】:
....还是我应该学会自己管理内存?
依赖iOS 5的垃圾回收功能可以吗?
我是新手,正在考虑尽快学习 iOS。
【问题讨论】:
标签: ios memory memory-management
....还是我应该学会自己管理内存?
依赖iOS 5的垃圾回收功能可以吗?
我是新手,正在考虑尽快学习 iOS。
【问题讨论】:
标签: ios memory memory-management
iOS 没有垃圾收集; iOS5 SDK 引入了 ARC(自动引用计数),与真正的垃圾收集有细微的区别。您仍然需要了解和理解引用计数的语义,因为通过不使用强引用循环等来避免内存泄漏仍然是您的责任,即使使用 ARC。但无论如何,继续使用 ARC,它确实使大多数代码更简单。
【讨论】:
为了澄清更多 ARC 是编译时功能,编译器在编译期间添加代码以为您发布对象,因此作为开发人员您无需担心这一点。另一方面,垃圾收集是一种运行时功能,它为您跟踪所有引用计数并自动释放引用计数为 0 的任何对象。
这是来自 Apple 文档
Objective-C 的自动引用计数 (ARC) 可增加内存 管理编译器的工作。通过使用新 Apple 启用 ARC LLVM 编译器,您将永远不需要再次键入 retain 或 release, 极大地简化了开发过程,同时减少了 崩溃和内存泄漏。编译器有完整的理解 你的对象,并在它不再是的那一刻释放每个对象 使用,因此应用程序运行速度与以往一样快,可预测,流畅 性能。
如果您打算从一开始就开发应用程序,请务必使用 ARC。
【讨论】: