Swift 4:无法将类型'(_)-> Void'的值分配给类型'(()->())吗?'

Esq*_*uth 6 closures swift

XCode 9,Beta 3. Swift 4。

    let button = JumpingButton(x: 0, y: 50, w: 150, h: 300) // JumpingButton: UIButton
    //Inside JumpingButton: // var clickAction: (() -> ())?


    button.clickAction = { (sender) -> Void in //Error line
        action()
        Sound.playSound(Sounds.Button)
    }
Run Code Online (Sandbox Code Playgroud)

收到错误:无法将类型'(_)-> Void'的值分配给类型'(()->())?

Cod*_*ent 8

因为clickAction期望无参数的功能/关闭。只需将您的代码更改为:

button.clickAction = {
    action()
    Sound.playSound(Sounds.Button)
}
Run Code Online (Sandbox Code Playgroud)