2
在我正在处理的聊天应用程序中,我需要将从联系人拍摄的电话号码发送到API,并检索已经在应用程序中注册的号码。递归调用闭包
由于联系人列表可能很长,我打算分批发送电话号码(每个请求20个)。并根据每个返回的响应更新UI。
private(set) var registeredContacts: [RegContact] = []
let phoneNumbersInBatches: [[String]] = [[]]
for batch in phoneNumbersInBatches {
ApiClient.sharedInstance.getRegisteredContacts(from: batch) { contacts, error in
// Saving to database
// Update the UI
// ...
self.registeredContacts += contacts
}
}
我想发送每个批次一个接一个。换句话说,我希望这个过程如何进行。
发送批量 - >得到回应 - >更新UI(如果有注册用户) - >发送下一个批次 - > ...
但随着getRegisteredContacts
是一个封闭的循环for
只需将所有请求一个接一个地发送出去,而无需等待先前的请求完成。
一旦前一个请求完成,我该如何等待并激发每个后续请求?
同步很少是一个好主意。你应该看看NSOperationQueue。 – Paulw11