为什么 swift 闭包抱怨没有初始化
why does swift closure complain there is no init
我有一个这样定义的处理程序:
var handler: (String, (Bool) -> Void) -> Void
我正在传递这个:
handler: ((String) -> Void)
{ a in
print(a)
}
我收到此错误,但我不知道如何修复它。
Type '(String) -> Void' has no member 'init'
当我尝试这种方式时,我遇到了同样的错误,但我认为它不正确,因为处理程序使用布尔值传入另一个闭包。
handler: (String, (Bool) -> Void) -> Void)
{ a in
print(a)
}
问题在于闭包需要两个参数:
var handler: (String, (Bool) -> Void) -> Void = { _,_ in }
handler = { a, b in
print(a)
b(false)
}
handler("a") { bool in print(bool) }
这将打印:
a
false
我有一个这样定义的处理程序:
var handler: (String, (Bool) -> Void) -> Void
我正在传递这个:
handler: ((String) -> Void)
{ a in
print(a)
}
我收到此错误,但我不知道如何修复它。
Type '(String) -> Void' has no member 'init'
当我尝试这种方式时,我遇到了同样的错误,但我认为它不正确,因为处理程序使用布尔值传入另一个闭包。
handler: (String, (Bool) -> Void) -> Void)
{ a in
print(a)
}
问题在于闭包需要两个参数:
var handler: (String, (Bool) -> Void) -> Void = { _,_ in }
handler = { a, b in
print(a)
b(false)
}
handler("a") { bool in print(bool) }
这将打印:
a
false