【问题标题】: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 它可以进一步使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        • 2018-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多