【问题标题】:How to handle the call back on Swift using two for loop如何使用两个 for 循环处理 Swift 上的回调
【发布时间】: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 的确切要求。只是一个建议。

标签: ios swift3 swift4


【解决方案1】:

您可以使用自定义委托来处理来自 API 的回调响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    相关资源
    最近更新 更多