Принудительная перезагрузка watchOS 2 Осложнения
У меня проблемы с получением осложнений на работу. Было бы полезно, если бы я был в состоянии надежно обновить их.
Поэтому я связал кнопку меню принудительного нажатия со следующим методом
@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
Буду признателен за любые идеи по обновлению Complications во время работы приложения?
1 ответ
Проследите или используйте точку останова исключения и сосредоточьтесь на чтении всего сообщения об ошибке, где оно точно указывает, в какой строке он обнаружил ноль неожиданно (я подозреваю, что осложняющий сервер). Используйте '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
}
}
}