2012-12-30 8 views

答えて

5

ARCでは、パターンは... deallocでは何もしません。あるいは実装することさえできます。 ARCはあなたのプロパティとインスタンス変数を処理します。

唯一の例外は、オブジェクトがanyに登録されている場合、deallocは通知の登録を解除するのに適していることです。

+0

この種のバグが見つからないため、deallocでの通知の登録を解除することは非常に重要です。 – amb

+0

objecに代理人がいれば、代理人もここでは省略することができます。 'someObject.delegate = nil;' – GangstaGraham

+1

@GangstaGrahamオブジェクトにデリゲートへの弱い参照がある場合、これを行う必要はありませんが、特にスクロールビューとWebビューのために行う必要があることがわかりましたARCの下でさえ、代表者。 – jrturton

0

良い質問です。 ARCを使用する場合、コンパイラはdeallocメソッドを実装し、インスタンス変数とプロパティのリリースを暗黙的に処理します。

あなたのクラスがメモリを解放する以外に何かをする必要がある場合(例:上記のjrturtonのような通知の登録を解除する)にはカスタム - deallocが必要な場合があります。

Apple公式notesでARCに移行する際に考慮する必要があることをよく理解することができます。

関連する問題