如何使用NSUserDefaults设置布尔值。预期的声明错误

时间:2016-03-30 08:40:13

标签: ios swift nsuserdefaults

创建一个布尔值以保存到NSUserDefaults以查看用户之前是否访问过该应用程序。如果他们在我希望屏幕转到主屏幕之前打开了应用程序。

错误:

Error

此处发生错误:

let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setBool(false, forKey: "userExists") //error here: Expected declaration

这是我的其余代码的逻辑。我认为这听起来很合理,但如果你看到我不喜欢的东西,请加入。

 if userDefaults.boolForKey("userExists") == true
    {
        performSegueWithIdentifier("moveMain", sender: nil)
    }
    else
    {
        userDefaults.setBool(true, forKey: "userExists")
    }

提前致谢!

2 个答案:

答案 0 :(得分:2)

作为您的评论"在课程声明后的文件顶部"建议你在声明的最高级别声明你的userDefaults ..避免...你需要把你的代码放在一个方法...像viewDidLoad()或任何其他方法

您的声明如下所示......

class ViewController: UIViewController{

  let userDefaults = NSUserDefaults.standardUserDefaults()
  userDefaults.setBool(false, forKey: "userExists") // error...

   override func viewDidLoad() {
       super.viewDidLoad()
       // Do any additional setup after loading the view.
   }
}

只需将您的默认值放在viewDidLoad()中,它就适合您......

class ViewController: UIViewController{
   override func viewDidLoad() {
       super.viewDidLoad()
       // Do any additional setup after loading the view.
       let userDefaults = NSUserDefaults.standardUserDefaults()
       userDefaults.setBool(false, forKey: "userExists") 
   }
}

答案 1 :(得分:0)

尝试类似:

NSUserDefaults.standardUserDefaults()。setBool(true,forKey:" abc")

您的代码没有任何问题。也许你应该清理你的项目,然后再试一次!!

避免将nsuserdefaults声明为顶级声明。或者请分享你的课程,以便我能更好地让你知道原因!!