ios - UITableView reloadData() 被解雇但延迟

标签 ios uitableview swift reloaddata

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

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

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

这一切都有效。除了在我调用 reloadData 之后,有一段时间什么都没有发生。表实际重新加载大约需要 10-20 秒。奇怪的是,当我点击屏幕时它也会重新加载,但是当我触发 reloadData 时没有任何反应。

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

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

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

最佳答案

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

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

关于ios - UITableView reloadData() 被解雇但延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412444/

相关文章:

ios - 当我点击没有元素的地方时,Tableview 单元格只会继续 Swift

ios - 带有 Gradle 的 Libgdx Robovm iOS 图标

ios - 你如何获得现有的 UIToolBar 图标?

ios - 在表格 View 中对歌曲名称进行排序 - Swift

iphone - 我必须执行哪些方法才能重新排列 UITableView 行?

c++ - 如何制作从 C++ 到 Swift 的回调函数指针?

ios - 编程不向给定的电话号码发送验证码

ios - 使用 instantiateViewControllerWithIdentifier 访问相同的 View Controller

iphone - UISegmentedControl 值以编程方式更改

ios - 动画 subview