2015-09-14 5 views
1

У меня возникают проблемы с работой. Было бы полезно, если бы я смог надежно обновить их.Force reload 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

Я бы признателен за любые идеи о том, что делает Осложнения обновления в то время как приложение работает?

ответ

3

Проследите или используйте контрольную точку исключения и сосредоточьтесь на чтении всего сообщения об ошибке, в котором он точно сообщает, на какой строке он неожиданно обнаружил нуль (я подозреваю, что это complicationServer). Используйте '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 
     } 
    } 
} 
+1

одно: Не забудьте добавить наблюдатель CLKComplicationServerActiveComplicationsDidChangeNotification обновлять его постоянно – AlexeyVMP

+1

Стреляет на событиях, как изменение циферблата – AlexeyVMP