Swift 3:不能调用非函数类型的值'(() - > Void)?'

Cra*_*lot 3 swift swift3 scntranscaction

这个函数在所有curses(也称为Swift 3)的诅咒之前工作.迁移到Swift 3之后,我的友好且可爱的IDE Xcode显示这个令人沮丧的错误SCNTransaction.completionBlock:

不能调用非函数类型的值'(() - > Void)?'

其他几个帖子处理类似的错误,但这些解决方案都不适用.

线路有什么问题???

func test(_ block: SCNNode, animated: Bool) {
    // Do stuff
    SCNTransaction.begin()
    SCNTransaction.animationDuration = animated ? AnimationDur : 0.0
    SCNTransaction.completionBlock {
        block.removeFromParentNode()
    }
    // Animate stuff
    SCNTransaction.commit()
}
Run Code Online (Sandbox Code Playgroud)

ken*_*ytm 16

SCNTransaction.completionBlock是一个类属性.也许你的意思是这个?

//                             ?
SCNTransaction.completionBlock = {
    block.removeFromParentNode()
}
Run Code Online (Sandbox Code Playgroud)