【发布时间】:2026-01-24 10:05:01
【问题描述】:
我有一个 iPad 应用程序,它在 Core Data 中有相当多的文本数据(大约 75MB)。每周都会导入新数据。导入发生在具有自己的 NSManagedObjectContext 甚至自己的 NSPersistentStoreCoordinator 的辅助线程上。
导入过程包含许多提取,除了一个之外,所有这些都非常有效,因为它返回大量记录(这可能可以稍微优化一点,但实际上并非如此。)不幸的是,在此期间进行大量抓取,主 UI 被阻塞(因为它还必须从商店抓取并且抓取被延迟)。
我已经在各个点测试了导入过程,以确认它确实在后台线程上。我已经仔细检查了代码以确保使用具有单独协调器的导入上下文。 undomanager 为 nil,并且导入上下文经常被重置。
是否有可能即使使用单独的 NSPersistentStoreCoordinator,后台的大型 fetch 请求仍会阻止主线程上的 fetch 请求,还是我做错了什么?
【问题讨论】:
标签: cocoa-touch ipad core-data