快速闭包为变量提供功能

时间:2018-12-14 07:18:52

标签: swift closures

class ClassA {

    var callback : (()->())?

    func someAction() {
        callback?()
    }
}

class ClassB {

    func caller() {
        let a = ClassA()
        a.callback = {
            print("hello")
            //d do stuff
        }
    }
}

我想将ClassB回调实现移到单独的函数中。如下

a.callback = somefunc()

但这不可能,因为我们为变量提供了 功能

我不想要

a.callback = { somefunc() }

有没有一种方法可以调用功能?

1 个答案:

答案 0 :(得分:2)

()添加到someFunc意味着您正在调用该函数,这将得出someFunc的返回值,即Void

您需要直接引用该函数,而无需调用它。只需删除()

a.callback = someFunc