无法将类型'() - > Void'的值转换为预期的参数类型'(( - - > Void)?'

A.R*_*Roe 10 ios swift swift3

我试图修改我的压轴错误,同时尝试转换为Swift 3,但我不确定为什么我得到错误

无法将类型'() - > Void'的值转换为预期的参数类型'(( - - > Void)?'

对于

 CATransaction.setCompletionBlock(completion)
Run Code Online (Sandbox Code Playgroud)

完整功能

fileprivate func deleteRowsAtIndexPaths(_ indexPaths: [IndexPath], withRowAnimation animation: UITableViewRowAnimation, duration: TimeInterval, completion:() -> Void) {
    CATransaction.begin()
    CATransaction.setCompletionBlock(completion) //Error
    UIView.animate(withDuration: duration) { () -> Void in
        self.deleteRows(at: indexPaths, with: animation)
    }
    CATransaction.commit()
}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我得到这个以及如何解决错误?

OOP*_*Per 6

当您将代码迁移到Swift 3时发现奇怪的内容时,请检查最新的参考.

宣言

class func setCompletionBlock(_ block: (@escaping () -> Void)?)
Run Code Online (Sandbox Code Playgroud)

尝试将方法标题的这一部分更改completion:() -> Void为:

completion: @escaping () -> Void
Run Code Online (Sandbox Code Playgroud)