我从您的陈述中假设您的主要上下文是这样创建的
let mainContext = NSManagedObjectContext.init(concurrencyType: NSManagedObjectContextConcurrencyType.mainQueueConcurrencyType)
mainContext.persistentStoreCoordinator = CoreDatStack.sharedStack.persistentStoreCoordinator
您已经创建了子上下文,如下所示
let childContext = NSManagedObjectContext.init(concurrencyType: NSManagedObjectContextConcurrencyType.privateQueueConcurrencyType)
childContext.parent = mainContext
冻结的原因:您的 mainContext 保存操作在 MainThread 上执行(因为写入磁盘(持久存储)是缓慢的过程),因此阻塞主线程直到保存操作完成。
解决方案:在 privateQueue 上创建与 PersistentStoreCoordinator 链接的上下文,这样保存就不会在 Main Queue 上执行。