Swift DispatchGroup .notify不会在Playground中调用

时间:2017-12-21 08:54:08

标签: ios swift

在调用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示例,因此我真的不知道它为什么不起作用。谢谢!

1 个答案:

答案 0 :(得分:1)

在游乐场中,您需要指定它“永远”运行才能等待异步通知等。:

import PlaygroundSupport
... // your code
PlaygroundPage.current.needsIndefiniteExecution = true