2

可能重复:
到 ARC 还是不到 ARC?优缺点都有什么?

我刚刚开始使用 Objective-C 和 iOS 开发。似乎自动引用计数(ARC)现在(并且已经有一段时间了)为 OSX 和 iOS 开发处理内存管理的首选方式。

此时学习手动保留/释放 (MRR) 有什么好处?跳过 MRR 并直接转向 ARC 有什么好处?

我目前的经验几乎完全是垃圾收集语言,包括 AS3、Java 和 JavaScript。我有兴趣了解有关内存管理的更多信息,但由于 ARC 实际上禁止使用retainreleaseautoreleaseretainCountdealloc,所以我不愿意编写使用这些的代码。

我也没有预见到我未来会转向低级编程,所以如果跳过 MRR 意味着我仍然不了解内存管理最佳实践,这些实践最终可能不会对我产生重大影响。

4

2 回答 2

4

我认为您不太可能需要编写使用retain,release等的代码。我想不出为什么您需要开始编写这样的代码的许多原因。

话虽如此,我发现在编写应用程序时了解编译器代表我在做什么非常有帮助。了解一些细节将帮助您编写更好优化的代码。

因此,作为 Objective-C 的初学者,我认为刚开始时不应该过多关注内存管理细节,但是随着您的专业知识的增长,我相信它是有用的背景信息,可以帮助您编写更好的代码,即使你总是使用ARC。

于 2012-12-30T00:38:11.647 回答
2

实际上有几个原因可以理解手动保留/释放。显而易见的答案是维护旧的 iOS 和 MAC 项目。另一个原因是 Core Foundation 对象不使用 ARC。此外,手动范例中有一些非常有用的内存管理模式。

查看这些资源以获取更多信息...

ARC还是不ARC?优缺点都有什么?

http://www.learn-cocos2d.com/2012/06/mythbusting-8-reasons-arc/

于 2012-12-30T00:44:06.447 回答