
3月
28
2020年
xCode 10+ iOS 12+ Swift 5+
xCode 10+ iOS 12+ Swift 5+
シングルトンとは、一度だけ作成され、使用する必要がある場所で共有されるべきオブジェクトのことです。Appleのプラットフォームでは一般的です。 FileManager、 UserDefaults、 UIApplication、 UIAccelerometerは、ほとんどがシングルトンの実装を通して使われています。
シングルトンの基本構造
Swiftのシングルトンの基本的な実装は以下のようになります。
struct Settings { static let shared = Settings() var username: String? private init() { } }
Settings構造体にイニシャライザを追加すると、既定のメンバ単位のイニシャライザが自動的に無効になり、 privateマークが付けられているため、クラス外から呼び出すこともできません。ただし、この構造体は静的変数として自身のインスタンスを作成するため、 Settings 構造体のインスタンスは、その構造体が作成したものだけになります。つまり、 Settings構造体のインスタンスは、この構造体が作成したもの、 Settings.shared.username のみとなります。