我想在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)