2011-10-31 3 views
31

私はXcode 4.2を初めて使用していますが、私はまだARCのスピードを最大限に引き上げることはできません。しかし、私は@ autoreleasepoolがautoreleaseプールの手動使用を置き換え、ARCでうまくいくためにいくつかの特別な魔法を使うことを読んだ。ARCのない@autoreleasepoolはありますか?

しかし、Xcode 4.2でARCオプションを指定して新しいプロジェクトを開始すると、がオフになります。まだテンプレートコードに@autoreleasepoolステートメントがあります。

ここにはどのような取引がありますか? http://clang.llvm.org/docs/AutomaticReferenceCounting.html#autoreleasepoolから

答えて

50

@autoreleasepoolは同等の意味で、非ARCの翻訳単位で使用することができます。

とグレッグ・パーカー[1][2]言う:あなたのデプロイメント・ターゲットが十分に新しい場合

LLVM 3.0の@autoreleasepool { ... }はNSAutoreleasePoolよりもはるかに高速です。 ARCは必要ありません。 (...)は常に動作しますが、OS X 10.7またはiOS 5.0のデプロイメントターゲットでは高速です。

だからあなたは関係なく、ARCの@autoreleasepoolを使用することができ、それはOS X v10.7用の+とiOS 5.0以上にNSAutoreleasePoolよりも速くなります。

関連する問題