我遇到了使并发症发挥作用的问题。如果我能够可靠地刷新它们会很有帮助。
因此,我将强制按菜单按钮链接到以下方法
@IBAction func updateComplication() {
let complicationServer = CLKComplicationServer.sharedInstance()
for complication in complicationServer.activeComplications {
complicationServer.reloadTimelineForComplication(complication)
}
}
不幸的是,这会导致应用程序崩溃。使用fatal error: unexpectedly found nil while unwrapping an Optional value
。
我理解调用reloadTimelineForComplication(complication)
是预算编制的,但这不是问题,因为它从一开始就不起作用。
我目前正在使用watchOS2 + Xcode 7 GM
我很欣赏在应用运行时让复杂功能更新的任何想法吗?
答案 0 :(得分:3)
跟踪或使用异常断点并专注于读取整个错误消息,它会告诉您确切地在哪一行发现nil(我怀疑是complicationServer)。使用'如果让'而不是让#39;强行打开相应的变量。
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
}
}
}