3-8クラスTips165 利用したメモリを解放する
Level2
Pointデストラクタでメモリを解放(deallocメソッド、releaseメソッド)
NSObjectクラスを継承したクラスでは、メモリの後処理を行うdeallocメソッドが定義されています。この後処理を行うメソッドをデストラクタと言います。
デストラクタでは、クラスで利用しているメモリを解放することができます。
- (void)dealloc
{
// オブジェクトの解放
[super dealloc];
}
デストラクタでは、最初にクラス内で利用しているメモリを開放します。
ただし、直接利用してるインスタンス変数の解放は自動的にreleaseメソッドが呼び出されるために必要ありません。配列内のメモリなどの自動で解放できない処理を記述します。
親クラスのdeallocメソッドは、処理の最後で行います。
リスト1では、Horseクラスの定義をして、デストラクタであるdeallocメソッドを定義しています。
Horseクラスでは、子供のHorseオブジェクトを配列で設定しています。この配列内のHorseオブジェクトをdeallocメソッドで解放しています。配列オブジェクト自身(children)は、自動的にreleaseメソッドが呼び出
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録