2016-10-21 5 views
1

Ich bin neu in der heutigen Erweiterung, ich habe diese Warnung, weiß jemand, wie die optionale Anforderung entsprechen?Instanzmethode 'widgetPerformUpdate (completionHandler :)' fast entspricht optionale Anforderung 'widgetPerformUpdate (completionHandler :)'

Instanz Methode 'widgetPerformUpdate (completionHandler :)' beinahe entspricht optional Anforderung 'widgetPerformUpdate (completionHandler :)' des Protokolls 'NCWidgetProviding'

func widgetPerformUpdate(completionHandler: ((NCUpdateResult) -> Void)) { 
    // Perform any setup necessary in order to update the view. 
    // If an error is encountered, use NCUpdateResult.Failed 
    // If there's no update required, use NCUpdateResult.NoData 
    // If there's an update, use NCUpdateResult.NewData 

    let result = performFetch() 
    if result == .newData{ 
     tableView.reloadData() 
     self.preferredContentSize = tableView.contentSize 
    } 
    completionHandler(result) 
} 
+0

Probieren Sie 'func widgetPerformUpdate (completionHandler: @ escaping (NCUpdateResult) -> Void) {' – rmaddy

+0

@rmaddy, es funktioniert! –

Antwort

0

schreiben @escaping vor den Typ der Parameter, um anzuzeigen, dass die Schließung darf entkommen.

func widgetPerformUpdate(completionHandler: (@escaping(NCUpdateResult) -> Void)) { 
    // Perform any setup necessary in order to update the view. 
    // If an error is encountered, use NCUpdateResult.Failed 
    // If there's no update required, use NCUpdateResult.NoData 
    // If there's an update, use NCUpdateResult.NewData 

    let result = performFetch() 
    if result == .newData{ 
     tableView.reloadData() 
     self.preferredContentSize = tableView.contentSize 
    } 
    completionHandler(result) 
} 

Diese Funktion nimmt grundsätzlich ein Abschlussargument als Abschlussbehandler. Die Funktion kehrt nach dem Start der Operation zurück, aber die Schließung wird nicht aufgerufen, bis die Operation abgeschlossen ist - die Schließung muss entkommen, um später aufgerufen zu werden.

Verwandte Themen