ios - 在核心数据中保存对象

标签 ios swift core-data swift3

假设我有这样的类(class):

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 子类创建具有此名称的新类,然后从头开始做所有事情?或者有一种方法可以在不进行更改的情况下转换类以匹配它吗?顺便提一句。在最新的更新中通过这个生成器是一个错误,它说那些类是不明确的:o

提前致谢!

最佳答案

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

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

您可能会发现值得看一看 Apple 的 Core Data Programming Guide .

关于ios - 在核心数据中保存对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42205051/

相关文章:

swift - 如何从具有 Swift 参数案例的枚举生成随机变量?

swift - CoreData合并变更

ios - USDZ 模型在 SceneKit 中有孔,但在 QuickLook 中没有

javascript - 触摸两个 dom 元素上的事件?

ios - 选择另一个选项卡时如何更改文本字段的背景颜色?

swift - 如何在 Swift 中获取已定义的变量?

ios - 将核心数据属性类型从 Integer32 更改为 String

ios - CoreData 返回与 >0 个实体有关系的实体以及这些关系的数量

ios - MonoDevelop/XCode 构建成功。构建失败。无效数据

ios - NSString 中的字符编码转为 unicode 字符