UITableView reloadData() 被解雇但延迟

UITableView reloadData() gets fired but delays

我 运行 喜欢 UITableView 的这种奇怪行为。

我正在我的应用程序中从 CloudKit 中获取一些记录。我已经设置了一个 NSObject 的专用子类来处理所有这些,只要它收到一条记录,它就会将该记录添加到我的模型数组中,然后告诉它的委托它已经收到了一些东西。然后委托重新加载 tableView.

func cloudKitFetchedRecord(identifier: NSString) {
    if identifier.isEqualToString("getAllProfiles") {
        self.tableView.reloadData()
    }
}

一切正常。除了在我调用 reloadData 之后,有一段时间没有任何反应。 table 实际重新加载大约需要 10-20 秒。奇怪的是,当我点击屏幕时它也会重新加载,但是当我开火时 reloadData 没有任何反应。

我已经检查了我的整个应用程序,到处都设置了断点,但是应用程序在延迟重新加载时没有做任何事情。我还清理了项目,清理了构建文件夹,几乎完成了我能想到的所有事情,但它一直在这样做。

有其他人 运行 遇到这种行为吗,或者有人知道如何解决它吗?

如有任何意见,我们将不胜感激

运行 您在主线程上的 reloadData 方法:

dispatch_async(dispatch_get_main_queue(), {self.tableView.reloadData()})

我认为你的 delegate 调用发生在后台,所以你需要做的就是在 主线程[=13= 中调用 reloadData 函数]

dispatch_async(dispatch_get_main_queue(), {self.tableView.reloadData()})