我試圖弄清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