【问题标题】:@autoreleasepool without ARC?@autoreleasepool 没有 ARC?
【发布时间】:2011-12-18 12:46:21
【问题描述】:

我是 Xcode 4.2 的新手,我还没有完全掌握 ARC。但是,我确实读到 @autoreleasepool 取代了手动使用自动释放池,并在后台做了一些特殊的魔法来与 ARC 配合得很好。

然而,当我在 Xcode 4.2 中开始一个新项目时,特别是在 ARC 选项关闭的情况下关闭,我仍然会在模板代码中看到 @autoreleasepool 语句。

这是怎么回事?

【问题讨论】:

    标签: xcode xcode4.2 automatic-ref-counting


    【解决方案1】:

    来自http://clang.llvm.org/docs/AutomaticReferenceCounting.html#autoreleasepool

    @autoreleasepool 可用于非 ARC 翻译单元,具有等效语义。

    格雷格帕克说[1][2]

    如果您的部署目标足够新,LLVM 3.0 的 @autoreleasepool { ... } 比 NSAutoreleasePool 快得多。不需要 ARC。 (...) 始终有效,但部署目标为 OS X 10.7 或 iOS 5.0 时速度更快。

    所以你可以使用@autoreleasepool而不考虑ARC,它会比OS X v10.7+和iOS 5.0+上的NSAutoreleasePool更快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多