无法从 Userdefaults 访问数据 - Swift
Posted
技术标签:
【中文标题】无法从 Userdefaults 访问数据 - Swift【英文标题】:Not able to access data from Userdefaults - Swfit 【发布时间】:2019-06-11 09:47:04 【问题描述】:我正在访问用户默认值:
let data = UserDefaults.standard.object(forKey: identifier)
当我看到数据中的值时,它显示为:
https://i.stack.imgur.com/UOjI8.png
data
的类型是
po type(of: data)
Swift.Optional<Any> . //Output
如何访问pageNumber
?
【问题讨论】:
【参考方案1】:因为 data 是一个字典才能访问pageNumber
,您需要将 data 转换为 Dictionary
guard let data = UserDefaults.standard.value(forKey: identifier) as? [String: Any] else //fallback here if you need return
let pageNumber = data["pageNumber"] as? Int ?? 0
【讨论】:
【参考方案2】:只需在UserDefaults
实例上使用dictionary(forKey:)
方法即可直接从UserDefaults
获取dictionary
。
返回的dictionary
是[String:Any]?
类型
if let dict = UserDefaults.standard.dictionary(forKey: identifier)
let pageNumber = dict["pageNumber"] as? Int
注意: pageNumber
的类型为 Int?
。 Unwrap
它可以进一步使用。
【讨论】:
以上是关于无法从 Userdefaults 访问数据 - Swift的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 小部件中的 UIKit UserDefaults