相关疑难解决方法(0)

在Swift中传递和存储闭包/回调

我想在swift代码中执行以下操作:

我必须打电话给我的api以更新几个项目.所以我异步调用每个项目的api.每个api调用在完成后执行回调函数.这些回调减少了一个计数器,所以当计数器达到0时,我知道所有的api调用都已完成.当计数器达到0时,我想调用最终回调函数(一次,当所有调用完成时),以便更新我的UI等等.最后的回调是在开始时传递给我的服务并存储在类属性中以便以后执行.

可执行游乐场来源:

// Playground - noun: a place where people can play

class MyService
{
    let api = MyApi()

    var storedFinalCallback: () -> Void = { arg in }
    var queue: Int                      = 0

    func update(items: [String], finalCallback: () -> Void )
    {
        // Count the necessary API calls
        queue               = items.count
        // Store callback for later execution
        storedFinalCallback = finalCallback

        for item in items {
            // Call api per item and pass queueCounter as async callback
            api.updateCall(item, callback: …
Run Code Online (Sandbox Code Playgroud)

closures callback swift

6
推荐指数
1
解决办法
8320
查看次数

标签 统计

callback ×1

closures ×1

swift ×1