使用swift读取用户默认值

时间:2016-10-19 20:15:41

标签: ios swift nsuserdefaults

我有几个按钮将userdefault设置为不同的整数。如果userdealts =特定的整数{code}

,我怎么能说"

这是设置userdefault的代码:

@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")
}

2 个答案:

答案 0 :(得分:1)

你可以使用:

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")
}

答案 1 :(得分:1)

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

<强>切换:

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

if - else 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
}