在调用API并在屏幕上加载一些数据时遇到问题,我发现我需要一些东西来同步调用我的函数。我发现了DispatchGroup并决定玩它,但它对我不起作用。
以这段小代码为例:
let myGroup = DispatchGroup()
for i in 0 ..< 5 {
myGroup.enter()
print("Finished request \(i)")
myGroup.leave()
}
myGroup.notify(queue: .main) {
print("Finished all requests.")
}
如果我在Swift Playground中运行此代码,则会打印5个“完成请求i”消息,但“完成所有请求”不会。此代码基于Stack Overflow示例,因此我真的不知道它为什么不起作用。谢谢!
答案 0 :(得分:1)
在游乐场中,您需要指定它“永远”运行才能等待异步通知等。:
import PlaygroundSupport
... // your code
PlaygroundPage.current.needsIndefiniteExecution = true