UITableView reloadData()被触发但延迟

我遇到了这个奇怪的UITableView行为。

我在我的应用程序中从CloudKit获取一些logging。 我已经build立了一个NSObject的专用子类来处理所有这些,并且每当它接收到一条logging时,它都会将该logging添加到我的模型数组,然后告诉它的委托它已经收到了一些东西。 委托然后重新加载tableView

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

这一切工作。 除了我调用reloadData ,没有任何事情发生。 大约需要10-20秒才能重新加载。 奇怪的是,它也重新加载时,我点击屏幕,但是当我发射reloadData没有任何反应。

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

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

任何意见将不胜感激

我认为你的delegate调用发生在后台,所以你只需要在主线程中调用reloadData函数

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

在主线程上运行reloadData方法:

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