【问题标题】:What is the value in learning manual retain/release? (iOS) [duplicate]学习手册保留/释放的价值是什么? (iOS)[重复]
【发布时间】:2012-12-30 00:27:52
【问题描述】:

可能重复:
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 意味着我仍然不了解内存管理最佳实践,这些实践最终可能不会对我产生重大影响。

【问题讨论】:

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


【解决方案1】:

我认为你不太可能需要编写使用 retainrelease 等的代码。我想不出你需要开始编写这样的代码的许多原因。

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

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

【讨论】:

    【解决方案2】:

    实际上有几个原因可以理解手动保留/释放。显而易见的答案是维护旧的 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 2011-06-04
      相关资源
      最近更新 更多