UserDefaults 不适用于 MSMessagesAppViewController
Posted
技术标签:
【中文标题】UserDefaults 不适用于 MSMessagesAppViewController【英文标题】:UserDefaults not working with MSMessagesAppViewController 【发布时间】:2020-04-06 03:52:04 【问题描述】:我正在尝试使用 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()
【问题讨论】:
【参考方案1】:您将string
设置为键“createdPhrases”的值,然后要求 uDefaults 返回一个字符串数组?
func displayCreatedPhrases()
phrases = uDefaults.value(forKey: "createdPhrases") as? String
print(phrases)
上面的代码应该适合你。 也不需要使用下面的行 (Link to UserDefaults synchronize)
self.uDefaults.synchronize()
【讨论】:
【参考方案2】:原因:
textfield.text
的类型为 String?
而不是 [String]
。在您的代码中,您将数据保存为 String
值并将其检索为 [String]
值。这就是原因,检索数据不起作用。
解决方案:
func displayCreatedPhrases()
phrases = uDefaults.string(forKey: "createdPhrases") ?? ""
print(phrases)
另外,phrases
必须是 String
类型。
【讨论】:
以上是关于UserDefaults 不适用于 MSMessagesAppViewController的主要内容,如果未能解决你的问题,请参考以下文章
如何删除仅一个子项目的所有 userdefaults 数据?
将 DateComponents 数组设置为 UserDefaults 不起作用