gpt4 book ai didi

objective-c - 从 Objective-C : To ARC or not to ARC? 开始

转载 作者:太空狗 更新时间:2023-10-30 03:27:28 27 4
gpt4 key购买 nike

根据 Apple's ARC Documentation ,在使用 ARC 时开发软件的方式发生了相当多的变化。

作为 Objective-C 的完全初学者,从禁用 ARC 开始会不会更好,因为它能让我更好地了解幕后发生的事情?还是 ARC 本质上反对做事的“旧方法”,以至于不值得花时间学习?

最佳答案

这基本上是一个意见问题,因此相当危险。

我的意见是肯定的。值得学习基本的内存管理。资格是不要陷入其中。通过一些非常简单的项目了解 ARC 在幕后为您做了什么。一旦你对如何处理内存管理有了基本的了解,即如何避免保留周期(正如 jemmons 所暗示的那样,它们仍然是 ARC 的问题)。一旦您对内存管理有了基本的了解。开始使用 ARC。

此外,正如 Jason Coco 指出的那样,ARC 处理(简单地说)NSObject 子类的内存管理。因此,如果您需要使用所有 CF 对象,您仍然需要自己处理它们。

在 WWDC2011 Session 323 - Introducing Automatic Reference Counting 中可以找到关于 ARC 在幕后为您做什么的精彩解释。

但还有其他一些考虑因素可能会影响您的决定。

您需要定位哪些设备?

如果您计划以 iOS 4.3 及更高版本为目标,ARC 会有效地为您处理内存管理。(NSObject 子类的)

如果您计划以 iOS 4.2 为目标,那么您将无法使用 weak 引用(您将使用 unsafe_unretained)。苹果 3g?和第二代 iPod touch 停留在这个操作系统级别,因为许多此类设备仍在使用中,许多开发人员仍在瞄准它们。

如果您计划将 iOS 定位到早于 4.2 的版本(这种情况很少见),您肯定需要学习 MRC(手动引用计数)。

如果您打算构建 Mac 应用程序,该平台上有一个垃圾收集器可用。 ARC 也是一个选项(完整的 ARC 10.7,没有弱支持 10.6)。

关于objective-c - 从 Objective-C : To ARC or not to ARC? 开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8542718/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com