我有一个 我设置的NSPersistentContainer
子类:MyCoreData* coreData
[self setCoreData:[MyCoreData persistentContainerWithName:myCoreDataModelName]];
[[self coreData] setPersistentStoreDescriptions:[NSArray arrayWithObject:[NSPersistentStoreDescription persistentStoreDescriptionWithURL:fileURL]]];
[[self coreData] loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription *storeDescription, NSError* error) {}];
[[[self coreData] viewContext] setAutomaticallyMergesChangesFromParent:YES];
这一切都在我的应用程序的一个主机对象中工作。我想从我的应用程序的另一个不相关部分对 CoreData 存储进行只读访问。基本上这是在非面向用户的后台线程中运行的,我想从 GUI 的一部分访问它以显示一些数据。
是否可以在其他地方进行相同的初始化并使用两个不同的 NSPersistentContainer 对象将事物绑定到同一个存储?
我知道如果我能到达这个宿主对象,我可以调用newBackgroundContext
,但我尽量不把它们联系在一起。
有一些 iOS 应用程序和扩展程序的例子,但我不熟悉这种情况。我需要在同一个应用程序中设置两个 NSPersistentContainer 对象,它们共享一个公共商店和模型。