如何在单例模式中更新变量



我有一个单例类,它有一个变量,就像这样简单

class Settings{
//  singelton
static let shared  = Settings()
var lan:String? = "ar"


private init(){

}

}

和我有一个按钮,改变语言代码的应用程序从ar到en,当我再次选择它的语言代码从en到ar。

@IBAction func languageBtnTabbed(_ sender: Any) {

MOLH.setLanguageTo(MOLHLanguage.currentAppleLanguage() == "en" ? "ar" : "en")
print(MOLHLanguage.currentAppleLanguage())
Settings.shared.lan = MOLHLanguage.currentAppleLanguage()

MOLH.reset()


}

我的问题是如何更新lan变量设置类与" molhlanguage . currentapplellanguage ()">

我尝试用这行来更新lan变量:Settings.shared.lan = molhlanguage . currentapplellanguage ()但实际上LAN变量并没有改变。有人能帮我解决这个问题吗?提前谢谢你。

我尝试在LAN变量上didset{}以更新它,一旦语言代码改变并且代码工作良好。

所以可能值得检查MOLHLanguage.currentAppleLanguage()的值是什么,我怀疑MOLHLanguage.currentAppleLanguage()的值实际上可能是ar?

尝试将land的默认文本更改为default之类的内容,并查看当您运行代码时是否值现在更新为ar

最新更新