将Swift 3项目转换为使用Coredata



我对Swift和Cocoa Worlds相对较新,很乐意对人民对以下数据模型设计最佳方法的意见:

i当前有一个针对MacOS的原型项目,该项目具有以下(简化)数据模型:

class Loan: NSObject, XMLParseDelegate {
   var id: Int
   var address: Address
   // ... other properties and methods
   func parseZillow() {
   // bunch of code, etc
   }
}

其中Address是具有自己的属性和方法的另一种类结构。然后,我有一个[Loan]的数组使用可可绑定绑定到NSArrayControllerNSTableView(一切都很好,除了现在我想将持久存储引入图片中)

现在(两部分)问题:

1)如果我用柯达塔模型表示这种结构 - 如何表示loan.address路径的嵌套类结构?我是否只有2个实体在Coredata(贷款和地址),并且两者之间有一对一的关系?这是最好的做法吗?

2)我对Coredata的理解是,Coredata不是使用[Loan]的数组作为我的数据模型,而是新的数据模型(并将创建一个代表我的数据架构的托管对象,类似于我当前所拥有的 class Loan对象。我在哪里定义我目前为LoanAddress类的方法?我需要在Mo之上创建包装班吗?我

  1. 是的,您可以拥有两个实体,贷款和地址。如果每个贷款都有一个地址,并且每个地址有一个贷款,则关系是一对一的。如果地址可以有多个贷款,则该关系是多一对一的。

  2. 创建和保存托管对象

创建nsmanagedObject子类

默认情况下,核心数据将返回NSManageBject Instance to您的应用程序。但是,为您的模型中每个实体定义NSManagedObject的子类是有用的。指定地,当您创建NSManagedObject的子类时,您可以定义实体可以用于代码完成的属性,并且可以在这些子类中添加便利方法。

在Xcode的核心数据模型编辑器中创建一个NSManagedObject的子类,选择实体和数据模型检查器的实体窗格中,请在类字段中输入名称。然后在Xcode中创建子类(aaaemployeemo)。

'创建nsmanagedObject子类…'在编辑菜单中。您可以一次创建所有子类。您可以将方法添加到NSMANAGEDOBJECT子类中。

最新更新