Blog スタッフブログ

Swift システム開発 ひとくちコードスニペット

[Swift6]シングルトンクラスのコードスニペット

Swift

こんにちは、株式会社MIXシステム開発担当のBloomです。

今回はSwift6で利用できるシングルトンクラスのコードスニペットを紹介します。

import Foundation

class Singleton: NSObject {
    @MainActor static let shared = Singleton() 
    nonisolated(unsafe) static let shared = Singleton() // 上記とどちらか
    private override init(){
        super.init()
    }
}

Swift6からスレッドセーフを静的解析で保証するため、メインスレッドでしか扱われないグローバル変数に@MainActorの指定が必要になりました。もし他スレッドからも参照する場合はnonisolated(unsafe)を指定しましょう。