SwiftUIでインスタンスを1個しか作成できないclass(シングルトン)の作成方法を説明する。
Swift 5.7 / Xcode 14.0 / iOS 16.0
結論
- class内で static let シングルトン = クラス名() を記述する。
- class内で private init() {} を記述する。
- 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(シングルトン)の作成方法を説明した。
コメント