首页 文章

当NSManagedObjectContext与后台线程中的另一个NSManagedObjectContext合并时,FetchedResultsController会阻止UI

提问于
浏览
2

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

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

感谢你们 .

1 回答

  • 0

    我认为UI被阻止的原因是由于获取的控制器反应并在每次更改时更新表视图 . 每次将NSManagedObject添加到商店时都是如此 .

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

相关问题