iBooks にある “The Swift Programming Language” の勉強メモ。Objective-C と C を普段書いている自分から、ちょっと馴染みがないものを特にまとめておきます。目次は こちら。
今回は、Deinitialization に関して。
Deinitialization
Deinitializer は、クラスのインスタンスが解放される際に呼ばれます。定義するには、Initializer のように deinit
キーワードを使用します。クラスのみ Deinitializer を必要とします。
1. Deinitialization
Swift は、メモリ管理を ARC により自ら行ってくれるので、基本的に独自に Deinitializer を作成する必要はありません。しかし、ファイルを開いたりと独自のリソースを使用している場合には、必要になることがあります。
Deinitializer は、各クラスにつき 1 つだけ定義できます。Deinitializer は引数を取らず、かっこを省いて書かれます。
1 2 3 | deinit { // perform the deinitialization } |
Deinitializer は自動的に呼ばれ、私たちから呼ぶことはできません。スーパークラスの Deinitializer は継承されます。Deinitializer は、全てのプロパティにアクセスすることができます。