1

我正在阅读 Apple 的“核心数据片段”文档(https://developer.apple.com/library/mac/#documentation/DataManagement/Conceptual/CoreDataSnippets/Articles/stack.html#//apple_ref/doc/uid/TP40008283 -SW1),我在这部分有点困惑。

To create a new managed object context, you need a persistent store coordinator.

NSPersistentStoreCoordinator *psc = <#Get the coordinator#>;
NSManagedObjectContext *newContext = [[NSManagedObjectContext alloc] init];
[newContext setPersistentStoreCoordinator:psc];

If you already have a reference to an existing context, you can ask it for its persistent 
store coordinator. This way you can be sure that the new context is using the same 
coordinator as the existing one (assuming this is your intent):

NSManagedObjectContext *context = <#Get the context#>;
NSPersistentStoreCoordinator *psc = [context persistentStoreCoordinator];
NSManagedObjectContext *newContext = [[NSManagedObjectContext alloc] init];
[newContext setPersistentStoreCoordinator:psc];

最特别的是 <#Get the coordinator#> 和 <#Get the context#> 部分。这到底是什么意思,在实际应用程序中应该去那里?

谢谢。

4

1 回答 1

1

据我了解,托管对象上下文几乎就像一个暂存器,您可以在其中进行更改,然后将该暂存器保存到存储中。几乎每次您想将托管对象放入存储中时,您都需要一个上下文,因此当您要这样做时,请务必创建一个。我对 PSC 不是很熟悉,但从外观上看,您只需要一个,并且可以在多个上下文中使用它。如果您希望在整个应用程序中使用相同的 PSC,那么我想您可以将它放在一个单例中或以某种方式传递它,这样您就不必每次都创建一个新的。

于 2012-08-20T03:15:52.597 回答