2

我有一个符合 NSFetchedResultsController 协议的 tableViewController。在我使用后台线程从服务器下载数据以保存到核心数据后,我必须将更改合并到此 tableView 中 NSFetchedResultsController 实例使用的主线程 NSManagedObject 上下文。合并 UI 后立即被阻止(几秒钟)。(NSFetchedResultsController 正在更新)。我想知道是什么导致了这种阻​​塞?有没有办法绕过这个阻塞?

因为我认为这个 NSFetchedResultsController 更新会更新 UI,所以我认为将它放在另一个线程中是不合适的。

感谢你们。

4

1 回答 1

0

我想 UI 被阻塞的原因是由于获取的控制器在每次更改时都会做出反应并更新表格视图。这是每次将 NSManagedObject 添加到商店时。

快速的解决方案,可能也是唯一的一个,是在后台下载数据,然后将获取的控制器从 UITableView 控制器的委托中退出,此时您可以进行更新,然后通过重新分配控制器将情况恢复正常成为 UITableView 委托,然后重新发出 fetch。

于 2013-08-26T09:30:38.833 回答