0

スーパーの dealloc の呼び出しに失敗した場合、それはコンパイラによって明示的に追加されているか、またはスーパー クラスから継承されたものを解放したい場合は、dealloc の最後にスーパーの dealloc を明示的に呼び出す必要があります。

4

2 に答える 2

1

ARC を使用している場合は、自動的に呼び出されるため、super を呼び出してはなりません (とにかくエラーが発生すると思います)。ARC を使用していない場合は、super を呼び出す必要があります。コンパイラはそれを行いません。

于 2013-07-28T09:41:32.340 に答える
1

を使用している場合ARC、 への呼び出しが[super dealloc]コンパイラによって自動的に追加され、実行しようとするとコンパイル エラーが発生します。

clang ARC リファレンスから;

セレクター dealloc のメッセージ送信または @selector 式が含まれている場合、プログラムは不適切な形式です。
...
スーパークラスの dealloc の実装は、メソッドが戻るときに自動的に呼び出されます。

ARC を使用していない場合は、自分で追加する必要があります。

于 2013-07-28T09:43:18.530 に答える