【问题标题】:How to pass a parameter to a block executed asynchronously in Swift?如何将参数传递给在 Swift 中异步执行的块?
【发布时间】:2020-04-23 21:35:59
【问题描述】:

除了function dispatch_async,它提交一个异步执行的块,iOS 还提供了另一个function dispatch_async_f 来提交一个带有单个参数的函数,用于异步执行。
在 Swift 中,我可以将dispatch_async 称为DispatchQueue.global().async {},但我没有找到任何方法可以调用dispatch_async_f
那么,如何将参数传递给异步执行的块?

【问题讨论】:

  • 在 Swift 中你不需要它。就DispatchQueue.global().async { yourFunction(yourParameter) }
  • 啊!很简单!感谢您的快速回答!

标签: swift function asynchronous parameter-passing dispatch-queue


【解决方案1】:

dispatch_async_f() 可以用在没有块或闭包的 C 代码中。

在 Swift 中,你只需传递一个闭包,闭包就会调用函数:

DispatchQueue.global().async {
    let theParameter = ...
    theFunction(theParameter)
}

闭包也可以在创建时捕获值:

let theParameter = ...
DispatchQueue.global().async {
    theFunction(theParameter)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多