2

重複の可能性:
strong (LLVM) とretain(GCC) の違いは何ですか?

最新のオブジェクト C プログラミングでは、retain の代わりに strong プロパティを使用できることが随所に見られます。しかし、ストロングとリテインの違いと、リテインよりもストロングの追加の利点は何かを知りたいので、Apple はストロングをリリースしました。

ありがとうございました!

4

1 に答える 1

2

ARC および非 ARC プロジェクトが機能する方法に対するその完全なセマンティック (afaik)。Apple は、全員が ARC を使用することを望んでおり、その方向に進んでいます。

ARC 以外のプロジェクトでは、「strong」は「retain」として機能します。ARCプロジェクトでは、clangがエラーにフラグを立てない場合(私はARCを使用していません)、「保持」が機能する可能性がありますが、説明には微妙な点があります。

保持は言う - 私はそれを解放する準備ができるまで、私はこのオブジェクトを保持している、と強いは言います (ねえ、ARC はこれを保持オブジェクトとして扱い、生成されたコードを私の dealloc メソッドに挿入して、自動解放プールが空になったときに解放します)。

私の知る限り、それが唯一の違いであり、概念的なものであり、幸せなARCの土地にいる場合は、壊れない限り、本当に気にする必要はありません:(

于 2012-10-21T10:49:44.917 に答える