Swift Static インスタンス

【Swift】staticで1つのインスタンスを共有

「呼び出される側」

class object: NSObject {
    //頭にstatic
    //現クラスのインスタンスを代入
    static let instance = object()
    var number = 0
    var string = "a"
}

「呼び出す側 – ViewController」

class ViewController: UIViewController {
    
    //object.swift
    let sample = object.instance

    override func viewDidLoad() {
        super.viewDidLoad()
        //インスタンスの初期値
        print("\(sample.number) " + sample.string)
        //値を変更
        sample.number = 100
        sample.string = "string"
        //変更した値を表示
        print("\(sample.number) " + sample.string)
    }

}

「呼び出す側 – ViewController2」

class ViewController2: UIViewController {

    //object.swift
    let sample = object.instance
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //インスタンスの初期値
        print("\(sample.number) " + sample.string)
        //値を変更
        sample.number = 777
        sample.string = "end"
        //変更した値を表示
        print("\(sample.number) " + sample.string)
    }
}