我已经创建了一个与对应的核心数据实体相匹配的NSManagedObject类。这个类有一个初始化器,所以我可以传入属性值并对其赋值。
初始化NSManagedObject类并准备将其保存到核心数据后,具体如何保存它?
我看到的所有示例都是从通过NSManagedObjectContext创建一个新类开始的。我不想走这条路,因为我像创建其他类一样创建了这个类。
有没有什么方法可以把这个对象传递给NSManagedObjectContext并调用它的save()方法。
发布于 2018-01-02 13:13:21
听起来你可能没有正确地初始化你的托管对象。仅在初始化器中分配属性值是不够的--您必须使用指定的初始化器。您看到的所有示例都使用NSManagedObjectContext,因为托管对象的指定初始化器需要一个。如果您没有提供,您就没有使用指定的初始化器,并且您将无法在Core Data中保存您的对象。
这是核心数据的基本要求之一。您必须使用托管对象,托管对象必须正确初始化,并且执行此操作需要上下文。
您不保存托管对象--而是告诉上下文保存它所知道的任何更改,包括对其任何托管对象的更改。您可以通过创建一个只知道一个新对象的新上下文来使其更细粒度。但是,在一个上下文中保存一个对象并不会自动让其他上下文知道,因此您最终增加了一些复杂性来保持更改同步。
苹果的Core Data Programming Guide通过示例代码详细介绍了这一点。
https://stackoverflow.com/questions/48055107
复制相似问题