【发布时间】:2019-01-30 15:03:13
【问题描述】:
我需要从 API 获取响应,
但我不知道多循环时的回调句柄
如果有人知道,请分享有关此的示例。
我还需要知道所有服务何时完成
let managedObject = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
for articleItem in (self.articleListArray) {
for item in (articleItem.tags)! {
let aTag = ArticleSection.entityWithId(itemID: item, managedObjectContext: managedObject)
if (aTag.title == nil) {
let networkManager = NXTNetworkManager()
networkManager.releaseTag(article: aTag, success: { (formData) in
}) { (error) in
}
}
}
}
【问题讨论】:
-
只有你知道响应格式。但是从您的 API 结构来看,您似乎有两个回调。一个代表成功,另一个代表失败。那么就在成功中处理成功,在失败中处理失败?
-
您的调用是异步的,因此它需要延迟回调,但您的功能将在完成之前完成,一旦满足您的条件,首先会中断您的循环,然后在循环外调用您的 networkManager,
-
改api比较好。传递
articleItem.tags作为参数。这样在应用端,我们可以避免多次网络调用。 NB:IDK 的确切要求。只是一个建议。