【问题标题】:Get NSUserDefaults Nil object获取 NSUserDefaults Nil 对象
【发布时间】:2018-04-09 07:22:24
【问题描述】:

API 返回一个参数的 nil 值,我用UserDefaults.standard.set(userType, forKey: "userType") 保存这个参数。但是现在我如何得到这个 Nil Value ?

UserDefaults.standard."?"(forKey: "userType") -> 做什么来代替 “?”

.

【问题讨论】:

  • 你能再分享一些代码吗?或者您可以在将其设置为 UserDefault 之前将其转换为字符串。或者创建条件
  • 更多代码会做什么?问题是这样的。
  • 您能否详细解释一下您的问题。因为我仍然不清楚你在问什么
  • 你想在 userdefaults 返回值上检查 nil 吗?
  • 绝对是的。

标签: ios swift nsuserdefaults


【解决方案1】:

默认情况下value(forKey:) 方法返回一个可选值。所以你可以像下面这样检查

if let userType =  UserDefaults.standard.value(forKey: "userType") {
  print("User your value here \(userType)")
} else {
  print("Your value is nil")
}

【讨论】:

    【解决方案2】:

    您可以在将值设置为 userDefault 之前检查 nil 条件。

    储存前:

    if let userType = userType{ //Use here the code from where your are getting data in userType
      UserDefaults.standard.set(userType, forKey: "userType")
    }else{
      print("It is nil")
    }
    

    在存储之前确保安全,这样它就不会存储 nil 值

    储存后:

    或者如果是保存的话你可以点赞

            if let userType = UserDefaults.standard.value(forKey: "userType"){
                print(userType)
            }else{
                print("nil")
            }
    

    【讨论】:

      【解决方案3】:

      您可以使用此代码获取 Nil 值 -

       if (UserDefaults.standard.value(forKey: "userType") != nil) {
              if (UserDefaults.standard.value(forKey: "userType") as! String).character.count == 0 {
                  //Your value is ""
              }else{
                  //some value
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-23
        相关资源
        最近更新 更多