无法从Userdefaults访问数据-Swfit

时间:2019-06-11 09:47:04

标签: swift nsuserdefaults userdefaults

我正在以以下方式访问用户默认值:

let data = UserDefaults.standard.object(forKey: identifier)

当我看到数据中的值时,它显示为:

https://i.stack.imgur.com/UOjI8.png

data

类型是

 po type(of: data)
 Swift.Optional<Any> . //Output

如何访问pageNumber

2 个答案:

答案 0 :(得分:1)

因为数据是字典,才能访问pageNumber,所以您需要将数据转换为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

答案 1 :(得分:0)

只需在dictionary(forKey:)实例上使用UserDefaults方法即可直接从dictionary获取UserDefaults

返回的dictionary类型为[String:Any]?

if let dict = UserDefaults.standard.dictionary(forKey: identifier) {
    let pageNumber = dict["pageNumber"] as? Int 
}

注意pageNumber的类型为Int?Unwrap,以便进一步使用。