在Core Data中插入新的托管对象

我对Core Data是新手,我觉得我没有掌握它。当你要创建一个新的托管对象时,你必须使用我从NSEntityDescription类的底部粘贴的方法。

现在这个对象是在上下文中注册的,对吗?为什么你在NSManagedContext中有 insertObject:呢?它在使用 NSEntityDescription 中的方法之后无需调用该方法。有人可以解释吗?

NSManagedContext </强>

insertObject:

NSEntityDescription </强>

+ (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context
0
额外
意见: 1

1 答案

You can create NSManagedObject with nil context and then decide whether you want to add it to context or not. You may also like this: Is there a way to instantiate a NSManagedObject without inserting it?

0
额外
啊,所以如果你创建带有nil的实例作为上下文,那么你稍后将它传递给insertObject?
额外 作者 LuckyLuke,
但是,如果这不是其中一些人指出的预期用途,苹果为什么要提供这种方法?或者将 nil 作为上下文正常传递?
额外 作者 LuckyLuke,
Okey,但是如果你使用NSEntityDescription方法,你已经用上下文注册了返回的对象,并且你不调用insertObject:在NSManagedContext中?
额外 作者 LuckyLuke,
Okey,谢谢@adam。
额外 作者 LuckyLuke,
究竟。我添加了一个链接到我的答案以获取更多信息。
额外 作者 Adam,
我一直使用它,没有任何问题。当您有多个上下文时,该方法可能会很有用。然后你可以决定保存哪一个。
额外 作者 Adam,
对,就是这样。只有在上下文为零时才使用insertObject。
额外 作者 Adam,