UserDefaults 不适用于 MSMessagesAppViewController

UserDefaults not working with MSMessagesAppViewController

我正在尝试使用 UIAlertController 将数据保存到 UserDefaults,但代码无法检索数据。

检索数据

    func displayCreatedPhrases(){
    phrases = uDefaults.stringArray(forKey: "createdPhrases") ?? [String]()
    print(phrases)
   }

设置数据

 self.uDefaults.set(textfield.text, forKey: "createdPhrases")
 self.uDefaults.synchronize()
 print("Saved the data!")
 self.phraseTableView.reloadData()

原因:

textfield.text 的类型是 String? 而不是 [String]。在您的代码中,您将数据保存为 String 值并将其检索为 [String] 值。这就是原因,检索数据不起作用。

解法:

func displayCreatedPhrases(){
    phrases = uDefaults.string(forKey: "createdPhrases") ?? ""
    print(phrases)
}

此外,phrases 必须是 String 类型。

您正在将 string 设置为键 'createdPhrases' 的值,然后要求 uDefaults return 一个字符串数组?

func displayCreatedPhrases() {
    phrases = uDefaults.value(forKey: "createdPhrases") as? String
    print(phrases)
}

以上代码应该适合您。 也不需要使用下面的行 (Link to UserDefaults synchronize)

self.uDefaults.synchronize()