2

几个月前,当我开始为 iOS 开发应用程序时(我是经验丰富的 Java 开发人员),我在 iOS 方面经验丰富的同事警告我远离 ARC(因为他们声称它有点错误)。现在我对 MRR 很满意。但如果真的值得,我想继续使用 ARC。在查看 Apple 的文档时,即“关于内存管理”。我发现:

“如果你打算为iOS编写代码,你必须使用显式内存管理

所以我仍然很困惑是否去ARC。我只关心 iOS(不是 Mac 开发)。

谢谢。

4

5 回答 5

13

您的同事听起来对 iOS 没有经验。ARC不是错误的。我听说过的每一位经验丰富的 iOS 开发者都提到了 ARC,他们在批准条款时都这样做了。我在 iOS 方面有超过三年的经验,我强烈推荐 ARC,只要你真正了解幕后发生的事情。苹果自己,在您链接的指南中说:

强烈建议您将 ARC 用于新项目。

当 Apple 说您必须使用显式内存管理时,他们将传统的手动内存管理和 ARC 组合在一起作为显式内存管理,与垃圾收集相反。

另外,请注意您链接到的是 Mac 开发者库中的文档,而不是 iOS 开发者库中的文档。如果您需要为 iOS 开发,请使用 iOS 开发人员库。

于 2012-05-07T10:21:36.847 回答
2

我个人的意见是,你应该开始学习使用 ARC 并在你自己的项目中实现它们(除非出于某种原因你的客户/老板不想要)。越来越多的库正在创建并转换为使用 ARC。Apple 还建议您在自己的项目中使用 ARC(请参阅 Jim 的回答)。虽然我必须坚持任何开始学习objective-c和iOS的人都应该熟悉传统的内存管理,然后再去ARC。另外,你可以检查这个答案

于 2012-05-07T10:24:02.633 回答
2

选择 ARC,因为它在某些情况下可以提高应用程序的性能阅读下面的博客

还有很多

于 2012-05-07T10:24:25.410 回答
2

我是一个有点经验的程序员,但是从我的角度来看,ARC 可以让你节省很多时间,因为你不用担心retain/release对象和实现dealloc方法。此外,它还可以让您从对象图的角度进行思考。在这种情况下,您需要注意应用程序中的循环。

那里有很多关于如何迁移到 ARC 的教程。这是我的最爱:

  1. http://www.mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-counting.html
  2. http://blog.mugunthkumar.com/articles/migrating-your-code-to-objective-c-arc/

希望能帮助到你。

于 2012-05-07T10:27:29.480 回答
1

如果您有使用 MMR 的经验,并且可能知道任务内存管理可能变得多么乏味。使用 ARC 时,不需要保留和释放调用,不仅如此,在许多情况下,ARC 还可以显着提高性能。

就个人而言,我觉得如果你在你的代码中使用了很多 C 库,那么现在使用 ARC 会有点困难(所以如果你主要使用第三方 C 库和 CoreFoundation 之类的东西,你可能会考虑不管它是否有意义),但即便如此,如果这些库大多与您的 Objective-C 控制器等隔离,ARC 仍然很好。

遵循本指南: http: //www.learn-cocos2d.com/2011/11/everything-know-about-arc/

于 2013-01-21T13:35:05.763 回答