创建一个布尔值以保存到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")
}
提前致谢!
答案 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声明为顶级声明。或者请分享你的课程,以便我能更好地让你知道原因!!