クラスの終了処理(deinit)

クラスの終了処理 deinitの定義

deinit {
    // パラメータ無し(中括弧無し)
    // クラスのみに使用できる
}

デイニシャライザは、クラスインスタンスの割り当てが解除される直前に呼び出されます。デイニシャライザは、クラスタイプでのみ使用できます。

デイニシャライザの例

        let dog = Dog(name: "Snoopy")
        print(dog.name)
// 結果
// Snoopy
// 当該クラスの deinit が呼ばれる
// deinit Dog   
// 次にスーパークラスの deinit が呼ばれる
// deinit Animal
    
    class Animal {
        var name: String
        var nakigoe: String?
        init(name: String) {
            self.name = name
            self.nakigoe = "designated wanwan"
        }
        deinit {
            print("deinit Animal")
        }
    }

    class Dog: Animal {
        deinit {
            print("deinit Dog")
        }
    }
    

投稿者: admin

Free Software Engineer

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です