Ios 强制重新加载watchOS 2的复杂性
我在工作中遇到了麻烦。如果我能够可靠地刷新它们,那将非常有帮助 因此,我将强制按下菜单按钮链接到以下方法Ios 强制重新加载watchOS 2的复杂性,ios,swift,watchos-2,clockkit,Ios,Swift,Watchos 2,Clockkit,我在工作中遇到了麻烦。如果我能够可靠地刷新它们,那将非常有帮助 因此,我将强制按下菜单按钮链接到以下方法 @IBAction func updateComplication() { let complicationServer = CLKComplicationServer.sharedInstance() for complication in complicationServer.activeComplications { complicationServer
@IBAction func updateComplication() {
let complicationServer = CLKComplicationServer.sharedInstance()
for complication in complicationServer.activeComplications {
complicationServer.reloadTimelineForComplication(complication)
}
}
不幸的是,这导致应用程序崩溃。出现致命错误:在展开可选值时意外发现nil
我知道调用reloadtimelineforcomposition(composition)
是有预算的,但这不是问题所在,因为它从一开始就不起作用
我目前正在使用watchOS2+Xcode 7 GM
如果您能在应用程序运行时更新复杂度,我将不胜感激。跟踪或使用异常断点,并专注于阅读整个错误消息,它会准确地告诉您它在哪一行意外地发现了零(我怀疑复杂度服务器)。使用“if let”而不是“let”强制展开相应变量
private func reloadComplications() {
if let complications: [CLKComplication] = CLKComplicationServer.sharedInstance().activeComplications {
if complications.count > 0 {
for complication in complications {
CLKComplicationServer.sharedInstance().reloadTimelineForComplication(complication)
NSLog("Reloading complication \(complication.description)...")
}
WKInterfaceDevice.currentDevice().playHaptic(WKHapticType.Click) // haptic only for debugging
}
}
}
有一件事:别忘了添加CLKComplicationServerActiveCompliationsIDChangeNotification的观察者,以持续更新它,它会在观察面更改之类的事件时触发