没有ARC的@autoreleasepool?

fie*_*sor 31 xcode xcode4.2 automatic-ref-counting

我是Xcode 4.2的新手,我还没有完全掌握ARC的速度.但是,我确实读到@autoreleasepool取代了自动释放池的手动使用,并且在引擎盖下做了一些特殊的魔法来与ARC玩得很好.

然而,当我在Xcode 4.2中启动一个新项目时,特别关闭了ARC选项,我仍然在模板代码中获得了@autoreleasepool语句.

这是什么交易?

小智 51

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

@autoreleasepool 可以在非ARC翻译单元中使用,具有等效的语义.

和Greg Parker说[1] [2]:

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

所以你可以使用@autoreleasepool不管ARC,它会比NSAutoreleasePoolOS X v10.7 +和iOS 5.0+ 更快.