【问题标题】:Not able to access data from Userdefaults - Swfit无法从 Userdefaults 访问数据 - Swift
【发布时间】: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?
【问题讨论】:
标签:
swift
nsuserdefaults
userdefaults
【解决方案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 它可以进一步使用。