我遇到了UITableView
的这种奇怪的行为。
我在我的应用中从CloudKit中获取了一些记录。我已经设置了NSObject
的专用子类来处理所有这些,并且只要它接收到一条记录,它就会将记录添加到我的模型数组中,然后告诉它的委托它收到了一些东西。然后代表重新加载tableView
。
func cloudKitFetchedRecord(identifier: NSString) {
if identifier.isEqualToString("getAllProfiles") {
self.tableView.reloadData()
}
}
这一切都有效。除了我打电话给reloadData
之后,暂时没有任何事情发生。该表实际重新加载大约需要10-20秒。奇怪的是,当我点击屏幕时它也会重新加载,但当我点火时reloadData
没有任何反应。
我已经检查了我的整个应用程序,到处都有断点,但是应用程序在延迟重新加载时没有做任何事情。我还清理了项目,清理了构建文件夹,几乎完成了我能想到的所有事情,但它一直在这样做。
是否有其他人遇到此行为,或者有人知道如何解决此问题?
任何评论都将受到高度赞赏
答案 0 :(得分:6)
在主线程上运行reloadData方法:
dispatch_async(dispatch_get_main_queue(), {self.tableView.reloadData()})
答案 1 :(得分:3)
我认为您的delegate
电话是在后台发生的,所以您只需要在主线程中调用reloadData
函数
dispatch_async(dispatch_get_main_queue(), {self.tableView.reloadData()})