学习手册保留/发布的价值是什么? (IOS)

时间:2012-12-30 00:27:52

标签: objective-c ios memory-management automatic-ref-counting

  

可能重复:
  To ARC or not to ARC? What are the pros and cons?

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

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

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

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

2 个答案:

答案 0 :(得分:3)

我认为你不太可能需要编写使用retainrelease等的代码。我想不出有很多理由说明为什么你需要开始编写这样的代码

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

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

答案 1 :(得分:1)

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

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

To ARC or not to ARC? What are the pros and cons?

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