SwiftUI | インスタンスを1個しか作成できないclass(シングルトン)の作成方法

struct/class/enum

SwiftUIでインスタンスを1個しか作成できないclass(シングルトン)の作成方法を説明する。

Swift 5.7 / Xcode 14.0 / iOS 16.0

結論

  1. class内で static let シングルトン = クラス名() を記述する。
  2. class内で private init() {} を記述する。
  3. let インスタンス = クラス名.シングルトン でclassをインスタンス化する。

具体例

import SwiftUI

struct ContentView: View {
    var body: some View {
        let インスタンス = クラス名.シングルトン  // ? 3

        // とりあえず適当なViewをおいておく
        return Text("1")
    }
}

class クラス名 {
    static let シングルトン = クラス名()       // ? 1
    private init() {                       // ? 2
        print("initしたいことがあればここに書く")
    }    
}

まとめ

SwiftUIでインスタンスを1個しか作成できないclass(シングルトン)の作成方法を説明した。

コメント

タイトルとURLをコピーしました