在获取异步数据时,在获取所需的 results.Want 以在获取所有数据后重新加载 collectionView 之前,提前调用通知块

While fetching async data, notify block gets called early, before getting the required results.Want to reload collectionView after all data fetched

在 viewDidLoad() 中调用了以下方法并使用 Firestore 缓存获取数据然后附加到数组。获得完整响应后,我想重新加载我的 collectionView(我正在通过通知块执行此操作)。请让我知道我哪里错了,这是我的代码:

  func getArchivedTasks(completion: @escaping ([ArchivedTasksModel],Bool) -> ()) {

    var archTasks : [ArchivedTasksModel] = []
    let viewModels = self.fetchTaskCardsFromDB()
    let group = DispatchGroup()

    for newItem in viewModels {

        let newTask = ArchivedTasksModel()
        newTask.taskCard = newItem

        firestoreManager.getLastComment(taskId: newTask.taskCard?.id ?? "") { (commnt, res) in
            group.enter()
            newTask.comment = commnt
            archTasks.append(newTask)
            group.leave()
        }
    }
    group.notify(queue: .main) {
        completion(archTasks, true)
    }
}

您必须enter调用异步任务

之前
group.enter()
firestoreManager.getLastComment(taskId: newTask.taskCard?.id ?? "") { (commnt, res) in ...