我想永久存儲一個字符串,並使用全局數據在多個接口控制器上訪問它。這是我按下按鈕時設置字符串的代碼。全球數據與UserDefaults - 斯威夫特
下面所有的代碼都是在接口控制器1
UserDefaults.standard.set("yellow", forKey: "newBingoColor")
下面這段代碼是醒了過來語境:
override func awake(withContext context: Any?) {
super.awake(withContext: context)
let newBingoColorObject = UserDefaults.standard.object(forKey: "newBingoColor")
if let newBingoColor = newBingoColorObject as? String {
temporaryVars.newBingoColor = newBingoColor as! String
print(newBingoColor)
print(temporaryVars.newBingoColor)
}
問題是字符串保存到temporaryVars.newBingoColor
和我可以在界面控制器2上看到它,但是當我重新啓動程序時,temporaryVars.newBingoColor
在界面控制器2上沒有打印出來。如果我試圖查看它在界面控制器1上雖然顯示正常?
這裏有什麼不正確?
顯示您的代碼爲控制器2,因爲是有問題的 –
您是否將您的userdefault設置爲空而您做restar T' –
@ReinierMelian我在控制器2上的代碼只是'print(temporaryVars.newBingoColor)' –