用用户缺陷设置全局变量

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

在我的应用程序中,我有一个全局变量,它跟踪用户是否已经选择了他的用户名。一旦他选择了他的名字,我想永久地将这个变量设置为true,这样我就可以禁用导致用户名ViewController的segue了。

但是我不能预置变量,因为每次我重新打开应用程序时,代码都会重新初始化变量。我仍然有问题,设置它与用户缺陷。

提问于
用户回答回答于

如果没有设置,UserDefaults getter将返回nil,因此不需要设置bool,只需检查该值是否已按如下设置:

if let username = UserDefaults.standard.string(forKey:"username") {
    // user has created username, and username has the unwrapped value in it
} else {
    // go to set username screen
}

确保在它们转到SET用户名屏幕后,在UserDefaults中设置用户名键:

UserDefaults.standard.string(value, forKey:"username")

何地value是他们输入的值。

如果要重置UserDefault中的值(即注销),请使用远程对象函数:

UserDefaults.standard.removeObject(forKey:"username")

这会使它变得如此UserDefaults.standard.string(forKey:"username")会回来nil再来一次。

如果你忘了设置它的话,再加上一个用来检查的齿轮就会把它搞砸.

用户回答回答于

将bool值设置为userDefault

UserDefaults.standard.setBool(true, forKey: "is_userName") 

并收回用于检查的值。

if UserDefaults.standard.bool(forKey: "is_userName"){
      // User have created username 
  }else {
      // Go to set username screem
  }

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励