for循环中的Swift闭包

目前我有代码在循环内执行闭包.我想知道所有闭包何时完成执行.目前我正在使用一个计数器并在完成闭包时递增它,然后我将它与要执行的次数进行比较.代码如下
var count = 0
var noOfTimes = 10
for i in 0..<noOfTimes {
    someVariable.someClosure {
        result in
        count = count + 1
        if count == noOfTimes {
            //do something
        }
    }
}

没有柜台,有没有更好的方法来做到这一点.
谢谢.

您可以使用DispatchGroup.它就像一个计数的信号量.您可以通过调用enter来增加计数,并通过调用leave来减少计数.您可以使用notify通过以下方式计划在计数达到0时执行的闭包:
let dispatchGroup = DispatchGroup()
var noOfTimes = 10
for i in 0..<noOfTimes {
    dispatchGroup.enter()  //  Enter the dispatch group
    someVariable.someClosure {
        result in
        // Process result
        ...
        dispatchGroup.leave() // Exit dispatch group
    }
}
dispatchGroup.notify(queue: DispatchQueue.main,execute: {
    print("All Done")
})

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...