Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 赋予变量函数的快速闭包_Swift_Closures - Fatal编程技术网

Swift 赋予变量函数的快速闭包

Swift 赋予变量函数的快速闭包,swift,closures,Swift,Closures,我想将ClassB回调实现移动到separate函数。如下 class ClassA { var callback : (()->())? func someAction() { callback?() } } class ClassB { func caller() { let a = ClassA() a.callback = { print("hello")

我想将ClassB回调实现移动到separate函数。如下

class ClassA {

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

    func someAction() {
        callback?()
    }
}

class ClassB {

    func caller() {
        let a = ClassA()
        a.callback = {
            print("hello")
            //d do stuff
        }
    }
}
但这是不可能的,因为我们给变量赋予了函数

我不想

a.callback = somefunc()
如果有调用函数的方法吗?

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

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

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

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


去掉括号就行了。a、 callback=somefunc删除括号即可。a、 callback=someFunc如果闭包具有(String,Int)->voidGet-it-someFunc(st:id:)等参数如何调用闭包具有(String,Int)->voidGet-it-someFunc(st:id:)等参数如何调用
a.callback = { somefunc() }
a.callback = someFunc