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

How to set a boolean using NSUserDefaults. Expected declaration error

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

错误:

这里出现错误:

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

提前致谢!

正如你的评论 "At the top of the file after class declaration" 建议你在声明的顶层声明你的 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") 
   }
}

试试像这样的东西:

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

您的代码没有任何问题。也许你应该清理你的项目并重试!

避免将 nsuserdefaults 声明为顶级声明。不然请分享给你class 好让我更好的告诉你原因!!