我正在学习CoreData。显然,您输入的主要类之一是NSManagedObjectContext。我不清楚它的确切作用。从我阅读的文章看来,您可以拥有多个NSManagedObjectContexts。这是否意味着NSManagedObjectContext基本上是后端的副本?
当周围有多个不同的副本时,如何将其解析为一致的后端?
因此,基本上有2个问题:
NSManagedContext是后端数据库的副本吗?
和...
例如,假设我在上下文A中进行了更改,而在上下文B中进行了其他更改。然后,我先在A上调用save,然后在B上调用Save? B会占上风吗?
谢谢
最佳答案
NSManagedObjectContext
不是后端数据库的副本。 documentation将其描述为便笺本
NSManagedObjectContext
只是用于以事务方式更改托管对象的临时位置。对上下文中的对象进行更改时,只有在保存上下文之后,它才会影响后端数据库,并且您知道可以拥有多个上下文,可以对其进行更改,这对于concurrency确实很重要。
对于第2个问题,谁占优势的答案取决于您为上下文设置的merge policy,最后一个被称为B。这是可以设置的合并策略,将影响要保存的第二个上下文。
关于objective-c - NSManagedObjectContext困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8791203/