【问题标题】:Should I use ARC in objective-c?我应该在objective-c中使用ARC吗?
【发布时间】:2011-10-27 05:57:26
【问题描述】:

查看 OS 10.7 的发行说明,有一些关于使用自动引用计数 (ARC) 简化内存管理的内容。我即将开始一个新的 Cocoa 项目,想知道是否值得使用该模型(按照我的理解,你不能在使用 ARC 和不使用它之间混用)?

困境似乎是使用新的东西与使用可能在以后节省大量调试时间的东西。但真的是这样吗?有没有人玩过它并没有发现现实世界的好处?

【问题讨论】:

  • Mac OS X(我可能还会将其升级为 10.7+,这样我就可以利用所有新的 API)

标签: objective-c cocoa automatic-ref-counting


【解决方案1】:

毫无疑问,您应该使用 ARC。 ARC 在最合适的时间注入保留释放调用,因此您实际上可能会看到比不使用 ARC 时更低的平均内存使用量。

我使用过 ARC,它非常强大。您不再出现随机崩溃,并且您的应用程序感觉更灵敏。正如他们在 WWDC 上所说,没有理由不使用自动引用计数。

此外,您可以在与 ARC 文件相同的项目中使用非 ARC 文件。

【讨论】:

  • 向后兼容性如何(尤其是在 iOS 上)?
  • 另外,开始使用 ARC 比以后转换应用更容易。
  • @mjisrawi:ARC 可以通过 iOS 4.0 返回。事实上,Apple 推出的 WWDC 应用是第一个使用 ARC 发布的 iOS 应用。
  • @jbtule:当然。然后你就没有浪费时间调试愚蠢的内存管理问题。我必须说,ARC 迁移实用程序让它变得非常简单。
  • @FreeAsInBeer - 我并不反对,但我从文档和邮件列表中收到了混杂的消息 - 我不清楚每个人都应该立即将所有内容转换为 ARC(我不意思是“我已经决定了”,我真的想了解是否是这种情况)。在使用 Objective-C 15 年后,您不会因为内存管理错误而出现“随机崩溃”。它真的让应用程序更具响应性吗?你的意思是你可以通过打开菜单、点击按钮来区分 ARC 应用和非 Arc 应用?
【解决方案2】:

我同意 FreeAsInBeer 关于使用 ARC 的看法。但是,还应明确不应使用垃圾收集 (GC)。看起来苹果今后将把精力集中在 ARC 上,而让 GC 慢慢死去。这太棒了,因为 ARC 显然是一项优越得多的技术,而 GC 速度很慢,而且漏洞百出。

所以是的。使用弧。远离 GC。

【讨论】:

    猜你喜欢
    • 2012-12-23
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2012-01-12
    • 2012-04-02
    • 2011-12-24
    • 2019-07-24
    • 1970-01-01
    相关资源
    最近更新 更多