Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 强制重新加载watchOS 2的复杂性_Ios_Swift_Watchos 2_Clockkit - Fatal编程技术网

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的观察者,以持续更新它,它会在观察面更改之类的事件时触发