我对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
]的数组使用可可绑定绑定到NSArrayController
和NSTableView
(一切都很好,除了现在我想将持久存储引入图片中)
现在(两部分)问题:
1)如果我用柯达塔模型表示这种结构 - 如何表示loan.address
路径的嵌套类结构?我是否只有2个实体在Coredata(贷款和地址),并且两者之间有一对一的关系?这是最好的做法吗?
2)我对Coredata的理解是,Coredata不是使用[Loan]
的数组作为我的数据模型,而是新的数据模型(并将创建一个代表我的数据架构的托管对象,类似于我当前所拥有的 class Loan
对象。我在哪里定义我目前为Loan
和Address
类的方法?我需要在Mo之上创建包装班吗?我
-
是的,您可以拥有两个实体,贷款和地址。如果每个贷款都有一个地址,并且每个地址有一个贷款,则关系是一对一的。如果地址可以有多个贷款,则该关系是多一对一的。
-
创建和保存托管对象
创建nsmanagedObject子类
默认情况下,核心数据将返回NSManageBject Instance to您的应用程序。但是,为您的模型中每个实体定义NSManagedObject的子类是有用的。指定地,当您创建NSManagedObject的子类时,您可以定义实体可以用于代码完成的属性,并且可以在这些子类中添加便利方法。
在Xcode的核心数据模型编辑器中创建一个NSManagedObject的子类,选择实体和数据模型检查器的实体窗格中,请在类字段中输入名称。然后在Xcode中创建子类(aaaemployeemo)。
'创建nsmanagedObject子类…'在编辑菜单中。您可以一次创建所有子类。您可以将方法添加到NSMANAGEDOBJECT子类中。