Swift Closure - Cannot convert value of type (_) -> ()? to expected argument type (() -> ())?
我在 Xcode 9、Swift 4 中使用 SideMenuController pod。试图让侧面板动画正常工作。无法弄清楚为什么它会抛出这个错误。如果您能提供帮助,请提前致谢!
1 2 3 4 5 6 7 8 9 | 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) } |
这是该函数的定义:
1 | class func panelAnimation(_ duration : TimeInterval, animations : @escaping (()->()), completion : (()->())? = nil) |
如您所见,您不需要在完成闭包开始时使用
改写如下:
1 2 3 4 5 6 7 8 9 | UIView.panelAnimation( duration, animations: { self.centerPanel.frame = centerPanelFrame self.set(statusUnderlayAlpha: hidden ? 0 : 1) }) { if hidden { self.setSideShadow(hidden: hidden) } completion?(updated) } |