除了提交用于异步执行的块的function dispatch_async
之外,iOS还提供了另一个function dispatch_async_f
来提交具有单个参数的函数以进行异步执行。
在Swift中,我可以将dispatch_async
称为DispatchQueue.global().async {}
,但找不到任何方法来调用dispatch_async_f
。
那么,如何将参数传递给异步执行的块?
最佳答案
dispatch_async_f()
可以在没有代码块或闭包的C代码中使用。
在Swift中,您只需传递一个闭包,然后闭包调用函数:
DispatchQueue.global().async {
let theParameter = ...
theFunction(theParameter)
}
闭包在创建时还可以捕获值:
let theParameter = ...
DispatchQueue.global().async {
theFunction(theParameter)
}