这两个片段之间有什么区别吗?在第一个中,块位于dispatch
部分内。 Tks
dispatch_async(dispatch_get_main_queue(),{
//do something
})
dispatch_async(dispatch_get_main_queue()){
//do something
}
答案 0 :(得分:1)
不,这两个街区之间没有区别。
这是Swift在函数括号后接受作为参数提供的闭包的能力的一部分。
注意:这个答案及其示例是用Swift 3编写的,但Swift 2的语法应该类似。
考虑以下情况:
func a(callback: (_ s: String) -> Void) {
callback(s: "hello there")
}
此功能可以表示为,与您的代码段类似:
a(callback: { str in
print(str) // prints "hello there"
})
或
a() { str in
print(str) // also prints "hello there"
}
在需要闭包的其他函数/方法中可以看到具有类似行为的闭包,例如autoreleasepool
,Dispatch和URLConnection
。从个人的角度来看,我几乎总是使用第一个例子,因为它更具可读性。