static func animate(_ duration: TimeInterval, animations: (() - Void)!, delay: TimeInterval = 0, options: UIViewAnimationOptions = [], withComplection completion: (() - Void)! = {}) { UIView.animate( withDuration: duration, delay: delay, op
          static func animate(_ duration: TimeInterval,
                        animations: (() -> Void)!,
                        delay: TimeInterval = 0,
                        options: UIViewAnimationOptions = [],
                        withComplection completion: (() -> Void)! = {}) {
        UIView.animate(
            withDuration: duration,
            delay: delay,
            options: options,
            animations: {
                animations()
            }, completion: { finished in
                completion()
        })
    } 
 Using above class in my swift file and create function like below
SPAnimation.animate(durationScalingRootView,
                        animations: {
                            rootViewController.view.transform = CGAffineTransform.identity
        },
                        delay: delayScalingRootView,
                        options: UIViewAnimationOptions.curveEaseOut,
                        withComplection: {
                            finished in
                            //rootViewController.view.layer.mask = nil
    }) 
 得到此错误
问题出在这里:Contextual closure type ‘() -> Void’ expects 0 arguments, but 1 was
used in closure body
withComplection: {
    finished in
    //rootViewController.view.layer.mask = nil
} 
 如果查看方法声明,则完成处理程序的类型为(() – > Void)!.它不需要任何论据.上面的闭包需要一个参数 – 完成.结果,发生错误.
从闭包中删除完成的参数:
withComplection: {
    //rootViewController.view.layer.mask = nil
} 
 或者您编辑animate方法以接受带有一个参数的闭包:
static func animate(_ duration: TimeInterval,
                    animations: (() -> Void)!,
                    delay: TimeInterval = 0,
                    options: UIViewAnimationOptions = [],
                    withComplection completion: ((Bool) -> Void)? = nil) {
    UIView.animate(
        withDuration: duration,
        delay: delay,
        options: options,
        animations: {
            animations()
        }, completion: { finished in
            completion?(finished)
    })
}
        
             