デイニシャライザって言葉自体あまり著名ではないかもしれないけど、スコープを抜けた時に発動するもの。ファイルの保存処理などで使うことが多い。
デストラクタみたいなものだと思えばおk。
Swiftでデイニシャライザを使う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
class Say { init() { print("Hey!!") } deinit { print("Yeah!!") } func hello() { print("Hello!!") } } func call() { let say = Say() // "Hey!!" (イニシャライザが呼ばれる) say.hello() // "Hello!!" // "Yeah!!" (デイニシャライザが呼ばれる) } call() |
こんな感じで、最初にinit()が呼ばれて、終わりにdeinitが呼ばれる。
ちなみに init() と違って deinit は括弧がつかないので注意。