2016-11-29 4 views
-3

保持と解放を挿入する以外にARCを使用して行うことは何ですか? ARCがコードを最適化すると言われていますか?保持と解放の挿入以外にARCを使用する場合

+1

[ARCリリースノートへの移行](https://developer.apple.com/library/content/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html)を参考にしてくださいかわった。 – Rob

+0

マットが以下に述べることに加えて、スタック変数を自動的に 'nil'に初期化します。前に、変数を宣言した場合、たとえば、 'NSString * string;'、明示的に何かに設定するまでの保証はありませんでした。また、 'dealloc'は自動的に' super'実装を呼び出すので、 'dealloc'が必要な場合でも、少なくとも[super dealloc]を呼び出す必要はありません。上記の文書で概説されている他の考慮事項もあります。 – Rob

答えて

1

「保持と解放を挿入する」は、ほとんどの場合、ARCが行うことです(特にautoreleaseを含む場合)。実際には、それはThe Golden Rules of Memory Managementに従うので、そうする必要はありません。

さらに1つの機能が追加されています。ダングリングポインタを防ぐために、automatic nilification of weak referencesを導入しました。

+0

この単純なことは、開発者の大きな負担ですが。あなたはあなたの保持とリリースで非常に訓練されることを学ばなければならなかったし、あなたがうんざりした場合は、メモリを漏らしたか、あなたのプログラムがデバッグするのが奇妙な方法でクラッシュした。マニュアル参照カウントよりARCの利点をはるかに説明するのは難しいです。私はおそらくそれを台無しにするだろう非アークコードを書いて以来、それは十分に長いされています。 –

関連する問題