我想在dispatch_async
块内调用@autoclosure参数。
func myFunc(@autoclosure condition: () -> Bool) {
dispatch_async(dispatch_get_main_queue()) {
if condition() {
println("Condition is true")
}
}
}
我收到以下错误。
是否可以异步调用@autoclosure参数?
在Xcode 6.4(6E23)中进行了测试。
最佳答案
是的,只要您声明它们为@autoclosure(escaping)
:
因此,应该这样做:
func myFunc(@autoclosure(escaping) condition: () -> Bool) {
dispatch_async(dispatch_get_main_queue()) {
if condition() {
println("Condition is true")
}
}
}