1

カスタム UITableViewCell のサブクラスを作成しています。スーパークラスには、dealloc メソッドで解放するいくつかのプロパティがあります。サブクラスにプロパティを 1 つ追加したので、dealloc メソッドをオーバーライドして、新しいプロパティを解放するようにしました。

私の質問は、dealloc メソッドをオーバーライドしたため、スーパー クラスの dealloc メソッドで解放されたプロパティは解放されないのでしょうか ([super dealloc] を呼び出しています)。MY dealloc メソッドでそれらを具体的に解放する必要がありますか?

4

3 に答える 3

6

を呼び出している場合は[super dealloc]、のスーパークラス実装-deallocが引き続き実行されます。スーパークラスは、独自のプロパティを解放する責任があります。したがって、スーパークラスのプロパティを解放する必要はありません。実際、そうするとアプリケーションがクラッシュする可能性があります。

于 2011-03-31T18:56:30.757 に答える
2

あなたが呼んでいるなら[super dealloc]、あなたは大丈夫です。そのメソッドは、サブクラスによって呼び出されたのか、ランタイムによって直接呼び出されたのかを認識せず、通常の作業を実行し、いつものように独自のプロパティを処理します。

于 2011-03-31T18:56:20.707 に答える
2

重要:[super dealloc]独自の ivar を作成し、-dealloc で必要な処理を行った後、-dealloc メソッドで最後に呼び出します。そのメソッドが戻ったとき、オブジェクトには何も残っていません。

于 2011-03-31T19:19:07.493 に答える