我已经研究了两个小时,我发现了一个非常相似的问题,扎伊德·帕坦回答了这个问题。不幸的是,当我使用Zaid在我自己的应用程序中共享的代码时,我没有得到我期望的结果。代码如下:
override func viewDidLoad() {
super.viewDidLoad()
println("Launched")
func isAppAlreadyLaunchedOnce()->Bool{
let defaults = NSUserDefaults.standardUserDefaults()
if let isAppAlreadyLaunchedOnce = defaults.stringForKey("isAppAlreadyLaunchedOnce"){
println("App already launched")
return true
}else{
defaults.setBool(true, forKey: "isAppAlreadyLaunchedOnce")
println("App launched first time")
return false
}
}
我添加了
println("Launched")
以便在日志中看到代码已执行。那很有效。但是,println("App already launched")
和/或println("App launched first time")
不执行。有什么建议吗? 最佳答案
你在函数中创建了函数。在作用域中移动isAlreadyLaunchedOnce
(到与viewDidLoad
相同的级别)并从viewDidLoad
调用它,或者修改如下代码:
override func viewDidLoad() {
super.viewDidLoad()
println("Launched")
let defaults = NSUserDefaults.standardUserDefaults()
if let isAppAlreadyLaunchedOnce = defaults.stringForKey("isAppAlreadyLaunchedOnce"){
println("App already launched")
// do something
} else {
defaults.setBool(true, forKey: "isAppAlreadyLaunchedOnce")
println("App launched first time")
// do something
}
}