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

时间:2016-09-06 13:11:14

标签: ios swift swift3

我试图在尝试转换为Swift 3时修复我的结局错误,但是我不确定为什么我会收到错误

  

无法转换类型'() - >的值虚空'预期参数类型'(()    - > ?空隙)'

对于

 CATransaction.setCompletionBlock(completion)

完整功能

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()
}

有人知道我为什么会这样做以及如何解决错误?

1 个答案:

答案 0 :(得分:6)

如果您在将代码迁移到Swift 3时发现奇怪的内容,请检查the latest reference

  

声明

class func setCompletionBlock(_ block: (@escaping () -> Void)?)

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

completion: @escaping () -> Void