在 Core Data 中插入一个新的托管对象
Posted
技术标签:
【中文标题】在 Core Data 中插入一个新的托管对象【英文标题】:Inserting a new managed object in Core Data 【发布时间】:2012-05-24 07:10:00 【问题描述】:我是 Core Data 的新手,我觉得我没有掌握它。当您要创建一个新的托管对象时,您必须使用我在 NSEntityDescription 类底部粘贴的方法。
现在这个对象是在上下文中注册的,对吗?那你为什么在 NSManagedContext 中有insertObject:
呢?在使用NSEntityDescription
中的方法后,它无需调用该方法即可工作。谁能解释一下?
NSManagedContext
insertObject:
NSEntityDescription
+ (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context
【问题讨论】:
【参考方案1】:您可以使用nil
上下文创建 NSManagedObject,然后决定是否要将其添加到上下文中。
你可能也喜欢这个:Is there a way to instantiate a NSManagedObject without inserting it?
【讨论】:
啊,所以如果你用nil作为上下文创建实例,那么你稍后将它传递给insertObject? 但如果这不是他们中的一些人指出的预期用途,为什么苹果提供这种方法?还是将nil
作为上下文正常传递?
我一直使用它,没有任何问题。当您有多个上下文时,该方法可能很有用。然后你可以决定保存哪一个。
好吧,但是如果你使用 NSEntityDescription 方法,你已经用上下文注册了返回的对象,并且你没有在 NSManagedContext 中调用 insertObject: 对吗?
是的,完全正确。仅在上下文为 nil 时使用 insertObject:。以上是关于在 Core Data 中插入一个新的托管对象的主要内容,如果未能解决你的问题,请参考以下文章