【发布时间】:2018-01-18 14:09:42
【问题描述】:
试图从网络调用中获取返回回复对象。会话是一个使用星形尖叫 API 的类。我似乎无法让它发挥作用。它只打印出一组来自第一个 id 的结果。我在这里错过了什么?
let myGroup = DispatchGroup()
for i in 0 ..< marketIds.count {
myGroup.enter()
self.session.retrieve(withMethod: MarketKeys.key, withParameters: [MarketKeys.id: marketIds[i]], completion: { (results, error) in
print("results \n")
print(results!)
myGroup.leave()
})
}
myGroup.notify(queue:.main) {
print("Done")
}
【问题讨论】:
-
我认为您应该为此查看
NSOperation -
@ReinierMelian 实际上,没有必要,他缺少通知部分...无论如何,我会添加一个相关问题。
-
您缺少“通知”部分。相关:stackoverflow.com/a/41809248/5501940
-
session.retreive 是做什么的?
-
我首先要确保
marketIds.count实际上大于 1。在调用enter之后添加一个打印语句,并确保你循环的次数与你想象的一样多。 (旁注,这应该是for id in marketIds而不是使用下标。下标有效,但它为您的应用程序崩溃创造了更多机会。但这与您的问题无关。)
标签: ios swift concurrency grand-central-dispatch