如何确保在Swift中接连执行回调?

时间:2019-05-24 12:16:33

标签: ios swift

我有一个方法可以对来自两个不同来源的项目进行排序,然后将它们放入tableView中,两个来源都可以同时调用,并且可以独立返回结果,如何确保如果有新的回调出现,将等待上一个完成吗?我认为允许对数据源同时进行两个或多个修改不是一个好主意

我的意思是

 func fetchPlaylists() {
    self.repo.getAllPlaylists(from: [.source1, .source2]) { [weak self] result in
        switch result {
        case .success(let playlists):
            // Wait for previous callback to finish the sortIncoming method
            self?.sortIncoming(playlists: playlists)
        case .failure(let error):
            print(error.localizedDescription)
        }
    }
}

private func sortIncoming(playlists: [AWPlaylist]) {
    ...
    insertToTableViewClosure?(sections, rows)
}

我了解DispatchGroup,但是我不知道回调将被调用多少次,这取决于源的大小,因此我不确定在这里是否有用

0 个答案:

没有答案