我想在dispatch_async块内调用@autoclosure参数.
func myFunc(@autoclosure condition: () -> Bool) {
dispatch_async(dispatch_get_main_queue()) {
if condition() {
println("Condition is true")
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
关闭使用@noescape参数可能允许它逃脱.
是否可以异步调用@autoclosure参数?
在Xcode 6.4(6E23)中测试过.
Air*_*ity 13
是的,只要你声明它们@autoclosure(escaping):
具有该
autoclosure属性的声明也意味着noescape,除非传递了可选属性escaping.
所以这应该这样做:
func myFunc(@autoclosure(escaping) condition: () -> Bool) {
dispatch_async(dispatch_get_main_queue()) {
if condition() {
println("Condition is true")
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1886 次 |
| 最近记录: |