2017-09-26 1 views
0

Ich verwende den SideMenuController-Pod in Xcode 9, Swift 4. Versuche, die Seitenpanelanimationen zu aktivieren. Kann nicht herausfinden, warum es diesen Fehler wirft. Vielen Dank im Voraus, wenn Sie helfen können!Swift Closure - Kann den Wert des Typs (_) ->() nicht konvertieren? zum erwarteten Argumenttyp (() ->())?

UIView.panelAnimation(duration, animations: { 
     self.centerPanel.frame = centerPanelFrame 
     self.set(statusUnderlayAlpha: hidden ? 0 : 1) 
    }) { _ in // THROWS ERROR - CANNOT CONVERT VALUE OF TYPE (_) ->()? TO EXPECTED ARGUMENT TYPE (() ->())? 
     if hidden { 
      self.setSideShadow(hidden: hidden) 
     } 
     completion?(updated) 
    } 

Antwort

1

Dies ist die Definition dieser Funktion:

class func panelAnimation(_ duration : TimeInterval, animations : @escaping (()->()), completion : (()->())? = nil) 

So wie Sie sehen können, die Sie nicht brauchen, um die _ in Schlüsselwörter zu Beginn des Abschlusses Schließung.

Rewrite wie folgt:

UIView.panelAnimation(duration, animations: { 
    self.centerPanel.frame = centerPanelFrame 
    self.set(statusUnderlayAlpha: hidden ? 0 : 1) 
}) { 
    if hidden { 
     self.setSideShadow(hidden: hidden) 
    } 
    completion?(updated) 
} 
Verwandte Themen