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()})