UserDefaults无法与MSMessagesAppViewController一起使用

时间:2020-04-06 03:52:04

标签: ios swift nsuserdefaults messaging userdefaults

我正在尝试使用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()

2 个答案:

答案 0 :(得分:1)

原因:

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

解决方案:

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

此外,phrases的类型必须为String

答案 1 :(得分:1)

您要将string设置为键“ createdPhrases”的值,然后要求uDefaults返回字符串数组吗?

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

上面的代码应该对您有用。 同样也不需要使用下面的行(Link to UserDefaults synchronize

self.uDefaults.synchronize()