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()})
我 运行 喜欢 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()})