Swift 赋予变量函数的快速闭包
我想将ClassB回调实现移动到separate函数。如下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")
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