WKInterfaceSwitch switchAction(value: Bool) 值始终为 false Apple Watch
WKInterfaceSwitch switchAction(value: Bool) value is always false Apple Watch
我目前正在开发 Apple Watch 应用程序。
我使用 WKInterfaceSwitch 来切换某物的状态。
在我的 WKIntefaceController 中,我连接了切换开关时调用的操作。
@IBAction func switchAction(value: Bool) {
NSLog("\(value)")
}
当我运行模拟器中的项目时,控制台输出显然是:
2015-05-28 20:42:08.067 Watch Test WatchKit Extension[1503:28272] false
2015-05-28 20:42:08.896 Watch Test WatchKit Extension[1503:28272] true
2015-05-28 20:42:10.547 Watch Test WatchKit Extension[1503:28272] false
2015-05-28 20:42:11.558 Watch Test WatchKit Extension[1503:28272] true
当我运行实体手表上的项目时,控制台会显示:
2015-05-28 20:44:06.044 Watch Test WatchKit Extension[345:16118] false
2015-05-28 20:44:06.954 Watch Test WatchKit Extension[345:16118] false
2015-05-28 20:44:07.318 Watch Test WatchKit Extension[345:16118] false
2015-05-28 20:44:08.343 Watch Test WatchKit Extension[345:16118] false
有谁知道为什么会这样。
可在此处下载显示该问题的完整项目:
https://bitbucket.org/rcpfuchs/watch-kit-wkinterfaceswitch-issue
这似乎只发生在某些设备上,所以如果您正在开发 Apple Watch 应用程序,最好按如下方式跟踪状态:
var switchValue = false // the value you chose in storyboard
@IBAction func switchAction(value: Bool) {
// ignore value
switchValue = !switchValue
// do something with switchValue
}
我也有同样的问题!
可能感兴趣:我看到这只发生在一只手表上,搭配 iPhone 5s。
我没有看到与 iPhone 6 配对的不同手表的相同问题。该问题也没有在模拟器上显示。
两款手表都是1.01版本,两款手机都是iOS8.3
我找不到直接修复,因为它看起来像是 WatchKit 中的某种错误。但是,解决方法非常简单。
我设置了一个布尔型成员变量,用来记录开关的初始状态。然后,当回调进入时,我反转成员变量的状态,并使用它而不是 WatchKit 传递的值(我现在忽略它!)。
希望对您有所帮助!如果您发现更多问题,或碰巧发现此问题已由 Apple 修复,请在此处分享该信息!
注意:我已将此作为 bug 提交给 Apple,作为雷达 21171938
皮特
我目前正在开发 Apple Watch 应用程序。 我使用 WKInterfaceSwitch 来切换某物的状态。
在我的 WKIntefaceController 中,我连接了切换开关时调用的操作。
@IBAction func switchAction(value: Bool) {
NSLog("\(value)")
}
当我运行模拟器中的项目时,控制台输出显然是:
2015-05-28 20:42:08.067 Watch Test WatchKit Extension[1503:28272] false
2015-05-28 20:42:08.896 Watch Test WatchKit Extension[1503:28272] true
2015-05-28 20:42:10.547 Watch Test WatchKit Extension[1503:28272] false
2015-05-28 20:42:11.558 Watch Test WatchKit Extension[1503:28272] true
当我运行实体手表上的项目时,控制台会显示:
2015-05-28 20:44:06.044 Watch Test WatchKit Extension[345:16118] false
2015-05-28 20:44:06.954 Watch Test WatchKit Extension[345:16118] false
2015-05-28 20:44:07.318 Watch Test WatchKit Extension[345:16118] false
2015-05-28 20:44:08.343 Watch Test WatchKit Extension[345:16118] false
有谁知道为什么会这样。
可在此处下载显示该问题的完整项目:
https://bitbucket.org/rcpfuchs/watch-kit-wkinterfaceswitch-issue
这似乎只发生在某些设备上,所以如果您正在开发 Apple Watch 应用程序,最好按如下方式跟踪状态:
var switchValue = false // the value you chose in storyboard
@IBAction func switchAction(value: Bool) {
// ignore value
switchValue = !switchValue
// do something with switchValue
}
我也有同样的问题!
可能感兴趣:我看到这只发生在一只手表上,搭配 iPhone 5s。
我没有看到与 iPhone 6 配对的不同手表的相同问题。该问题也没有在模拟器上显示。
两款手表都是1.01版本,两款手机都是iOS8.3
我找不到直接修复,因为它看起来像是 WatchKit 中的某种错误。但是,解决方法非常简单。
我设置了一个布尔型成员变量,用来记录开关的初始状态。然后,当回调进入时,我反转成员变量的状态,并使用它而不是 WatchKit 传递的值(我现在忽略它!)。
希望对您有所帮助!如果您发现更多问题,或碰巧发现此问题已由 Apple 修复,请在此处分享该信息!
注意:我已将此作为 bug 提交给 Apple,作为雷达 21171938
皮特