tableView 函数在填充数组之前运行

tableView function runs before array is populated

我正在尝试填充 Table 视图,但我认为我的函数 运行 的顺序有误。

我有一个填充数组的简单函数 loadSampleAssignments()。如果我直接在 viewDidLoad 中调用该函数,我的 table 会正确填充。

问题是我需要在这段代码中从Auth0成功响应后调用代码:

fileprivate func retrieveProfile() {
    guard let accessToken = loginCredentials.accessToken else { return }
    Auth0
        .authentication()
        .userInfo(token: accessToken)
        .start { result in
            switch result {
            case .success( _):
                self.loadSampleAssignments()
            case .failure( _): break
            }
    }
}

不幸的是,当我在这里调用函数时,我的 UI 更新为一个空数组。我可以看到调用了 loadSampleAssignments(),但它是在我的 cellForRowAt 函数更新了 table 个单元格之后。

有没有办法在我的 loadSampleAssignments 函数中手动调用 cellForRowAt 函数?

我已经被困了好几天了,非常感谢任何帮助!谢谢!

在您准备好重新填充 table 时,调用 tableView.reloadData(),这将触发 cellForRow。在数据准备好显示之前 cellForRow 也被触发不是问题 - 这是正常的,并不意味着您做错了什么。