使用 swift 读取用户默认值

Reading user defaults with swift

我有几个按钮可以将 userdefault 设置为不同的整数。我怎么能说“如果 userdealts = 一个特定的整数{code}

这是设置用户默认值的代码:

@IBAction func one(_ sender: AnyObject) {
    defaults1.set(1, forKey: "Sphere")
    print("Ghost one was selected")
}

@IBAction func two(_ sender: AnyObject) {
    defaults1.set(2, forKey: "Sphere")
    print("Ghost two was selected")
}

您可以使用:

if defaults1.integer(forKey: "Sphere") == 1 {
  // do something
}

if defaults1.integer(forKey: "Sphere") == 2 {
  // do something
}

关于 matt 评论的更新(如果整数键不存在,则使用可选绑定来处理):

if let sphereKey = defaults1.object(forKey: "Sphere") {
  if defaults1.integer(forKey: "Sphere") == 1 {
    // do something
  }

  if defaults1.integer(forKey: "Sphere") == 2 {
    // do something
  }
} else {
  print("UserDefault Key 'Sphere' doesn't exist")
}

或检查是否为零(在你的情况下会更好,因为你不会使用上面可选绑定中的 sphereKey):

if defaults1.object(forKey: "Sphere") != nil {
  if defaults1.integer(forKey: "Sphere") == 1 {
    // do something
  }

  if defaults1.integer(forKey: "Sphere") == 2 {
    // do something
  }
} else {
  print("UserDefault Key 'Sphere' doesn't exist")
}

如果您只有两个值,则应使用 switchif, else ifif - else。要获取值,只需 defaults1.integer(forKey: "Sphere"):

切换:

switch defaults1.integer(forKey: "Sphere") {
case 1:
    // 1
case 2:
    // 2
default:
    break
}

if - 否则如果:

if defaults1.integer(forKey: "Sphere") == 1{
    // 1
}
else if defaults1.integer(forKey: "Sphere") == 2{
    // 2
}

如果你只有两个值:

if defaults1.integer(forKey: "Sphere") == 1{
   // 1
}
else{
   // 2
}