如何保存NSManagedObject?

问题描述 投票:0回答:1

我创建了一个与相应的Core Data实体匹配的NSManagedObject类。该类有一个初始化程序,因此我可以传入属性值并分配它们。

一旦NSManagedObject类初始化并准备保存到Core Data,您究竟如何保存它?

我见过的例子都是从NSManagedObjectContext创建一个新类开始的。我不想去那条路,因为我正在创建类,就像任何其他类一样。

有没有办法将这个对象传递给NSManagedObjectContext并调用它的save()方法。

core-data swift4
1个回答
1
投票

听起来你可能没有正确初始化你的托管对象。在初始化程序中分配属性值是不够的 - 您必须使用指定的初始化程序。您看到的示例都使用NSManagedObjectContext,因为托管对象的指定初始化程序需要一个。如果您没有提供,则不使用指定的初始化程序,并且您将无法将对象保存在Core Data中。

这是Core Data的基本要求之一。您必须使用必须正确初始化的托管对象,并且这样做需要上下文。

您不保存托管对象 - 您告诉上下文保存它所知道的任何更改,包括对其任何托管对象的更改。您可以通过创建仅知道一个新对象的新上下文来使其更精细。但是将对象保存在一个上下文中并不会自动让其他上下文知道,因此最终会增加一些复杂性以保持更改同步。

Apple的Core Data Programming Guide详细介绍了示例代码。

© www.soinside.com 2019 - 2024. All rights reserved.