我试图弄清iPhone在启动iPhone应用程序时的状态。当iPhone应用程序启动时无法从Watch观看NSUserDefaults
在手表上,有3个按钮。当按下一个按钮,下面的代码运行:
if let watchDefaults = NSUserDefaults(suiteName: "group.mywatchkit") {
watchDefaults.setInteger(1, forKey: "intstate")
watchDefaults.synchronize()
}
然后,当应用程序被启动,在viewDidLoad中()方法我尝试找回状态:
if let watchDefaults = NSUserDefaults(suiteName: "group.mywatchkit"){
let currentState = watchDefaults.integerForKey("intstate")
if currentState != 0 {
stateLabel.text = currentState.description
switch currentState {
case 1:
//do what state 1 needs
println("current state is \(currentState)")
case 2:
//do what state 2 needs
println("current state is \(currentState)")
case 3:
//do what state 3 needs
println("current state is \(currentState)")
default:
println("default state")
}
} else {
watchDefaults.setInteger(3, forKey: "intstate")
stateLabel.text = "current state is 3"
}
}
可悲的是我总是得到字符串“???”我错过了一些基本的东西?
因为如果没有值,它返回0,因为它永远不会是零。所以你只需要检查它是否等于0.
谢谢!这与将objectForKey更改为stringForKey一样简单。 – lernerbot 2015-02-24 18:58:07
非常感谢您的支持! – lernerbot 2015-02-24 19:19:37
不客气 – 2015-02-24 19:19:57