将对象保存在Core Data中

时间:2017-02-13 13:19:08

标签: ios swift core-data swift3

假设我的课程看起来像这样:

class A { 
   var property1:Int
   var property2:String

   init(property1: Int, property2: String) {
      self.property1 = property1
      self.property2 = property2   
   }
}

(...)

let a = A(property1: 10, property2: "Smth")

是否可以在CoreData中保存该对象?我是否必须使用此名称通过NSManageObject Subclass创建新类,然后从头开始执行所有操作?或者有一种方法来转换类以匹配它而不进行更改?顺便说一句。通过最新更新中的这个生成器是一个错误,说这些类是不明确的:o

提前致谢!!

1 个答案:

答案 0 :(得分:1)

您确实需要NSManagedObject或子类,但不能有两个具有相同名称的类。使用Core Data,您通常在Core Data模型编辑器中定义实体类型,然后创建一个子类来匹配该实体(Xcode通常会自动创建子类)。

有一个镜像Core Data对象的第二个非托管类是非常罕见的。您可以单独使用NSManagedObject子类。您仍然可以拥有property1property2,但您的初始化程序必须更改。对于托管对象,您必须在初始化时具有托管对象上下文,这通常意味着将一个作为初始化程序的参数。

您可能会觉得值得一看Apple的Core Data Programming Guide