2011-07-19 48 views
0

我正在学习Core Data,并了解创建全新对象,分配值并将其保存到managedContext(insertNewObjectForEntityForName)的所有示例。 但是,如果我已经在别处创建了一个对象(模型类别),该怎么办?在这种情况下,我想只将当前的上下文分配给这个模型,然后保存它。将现有模型保存到CoreData数据库

什么是采取内存模型的命令/方法,然后分配给上下文,以便可以保存?

回答

1

如果你想使用核心数据来管理你的数据,你将需要:

  • 创建一个适当的模型描述(.xcdatamodeld文件)

  • 修改模型类(ES ),以便它们从NSManagedObject继承

  • 设置“类别”为每个实体模型中描述的NSManagedObject的一个子类

  • 代码添加到您的应用程序来创建和管理核心数据堆栈,获取数据等

这是非常做,能,但我不会建议你尝试它,直到你有一个对核心数据的理解以及在项目中采用它的理由。你的问题缺乏清晰度可能表明你还没有到达那里;您可能从一开始就使用核心数据的小型项目中受益。

如果您只想保存数据,您应该知道Core Data不是唯一的方法。保存数据的简单方法是在数据模型中采用NSCoding协议,然后使用NSKeyedArchiver存储数据。从Archives and Serializations Programming Guide获取完整的故事。还有其他方法可以做到,但NSKeyedArchiver是一个很好的开始。

+0

感谢您的回复,我已经完成了您提到的步骤。我没有做的是“创建”一个空白的实例 - 而是我分配一个新的模型实例(像一个普通的类),但我没有一个上下文存储。我正在寻找一个将上下文附加到当前实例的命令,但是我已经了解到,CoreData的* right *方法是获取/创建一个空白实体并对其进行修改。 – beeudoublez

0

您只能将NSManagedObject(及其子类)保存到CoreData。 NSManagesObject上下文NSManagedObjectContext之外无法创建。

所以,你说的是混乱。你有一个非CoreData模型对象吗?