在Swift 2.1中使用Singleton

时间:2016-03-19 10:39:52

标签: ios swift

我编写了这个示例类来测试Swift 2.1中的Singleton:

FGSingleton.sharedInstance.displayGameScore()

但是当我像这样init调用func时,它从不调用该函数,也不会从{{1}}打印。我试图调试它,发现光标永远不会进入函数内部。

这是由于我在上面评论过的错误行。知道如何从sharedInstance调用全局变量来为另一个全局变量赋值吗?

1 个答案:

答案 0 :(得分:0)

我发现最简单的解决方案是将全局var初始化为可选,然后为init()内的另一个全局变量赋值。这是我更新的代码:

class FGSingleton {
    static let sharedInstance = FGSingleton()

    var gameScore: Int = 0

    let path = NSBundle.mainBundle().pathForResource("Data", ofType: "plist")
    //initialize as optional
    let dict: NSDictionary?

    // METHODS
    private init() {
        print(__FUNCTION__)
        dict = NSDictionary(contentsOfFile: self.path!)
    }
    func displayGameScore() {
        print("\(__FUNCTION__) \(self.gameScore)")
    }
    func incrementGameScore(scoreInc: Int) {
        self.gameScore += scoreInc
    }
}

如果还有其他更好的解决方案,请告诉我。