文字列を永続的に格納し、グローバルデータを使用して複数のインターフェイスコントローラにアクセスしたい。これは、ボタンを押したときに文字列を設定するコードです。UserDefaultsを使用したグローバルデータ - Swift
以下のすべてのコードは、インタフェース・コントローラ上にある1
UserDefaults.standard.set("yellow", forKey: "newBingoColor")
このコードは、以下のコンテキストにアウェイクである
:問題が文字列temporaryVars.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)
}
インターフェイスコントローラ2で見ることができますが、プログラムを再起動すると、temporaryVars.newBingoColor
はインターフェイスコントローラ2に何も表示されません。表示しようとするとインターフェイスコントローラ1上に表示されますが、問題ありませんか?
ここで間違っていますか?あなたのAppDelegateで
コントローラー2のコードを問題のあるコードと同じように表示 –
再構築中にユーザーのデフォルトを空に設定していますかt? –
@ReinierMelianコントローラ2のコードは 'print(temporaryVars.newBingoColor)' –