我对Swift和Cocoa世界相对较新,并希望得到人们对于如何设计以下数据模型的最佳方式的看法:
我目前有一个macOS原型项目,它有以下(简化)数据模型:
class Loan: NSObject, XMLParseDelegate {
var id: Int
var address: Address
// ... other properties and methods
func parseZillow() {
// bunch of code, etc
}
}
其中Address
是另一个具有自己的属性和方法的类结构。然后我使用Cocoa Bindings绑定到Loan
和NSArrayController
的数组[NSTableView
](一切都很好,除了现在我想在图片中引入持久存储)
现在(两部分)问题:
1)如果我用CoreData模型表示这个结构 - 我如何表示loan.address
路径的嵌套类结构?我在CoreData(贷款和地址)中只有2个实体,并且两者之间有一对一的关系吗?这是最好的做法吗?
2)我对CoreData的理解是,不使用[Loan]
数组作为我的数据模型,CoreData将成为新的数据模型(并将创建一个代表我的数据模式的托管对象,类似于我拥有的目前作为我的class Loan
对象。我在哪里定义我目前对Loan
和Address
类的方法?我是否需要在MO之上创建一个包装类?我我看了很多教程,但这部分仍然不清楚
答案 0 :(得分:0)
是的,您可以拥有两个实体,贷款和地址。如果每笔贷款都有一个地址,每个地址都有一笔贷款,那么这种关系就是一对一的。如果一个地址可以有多个贷款,那么这种关系是多对一的。
创建NSManagedObject子类
默认情况下,Core Data会将NSManagedObject实例返回给您的应用程序。但是,为模型中的每个实体定义NSManagedObject的子类很有用。具体来说,在创建NSManagedObject的子类时,可以定义实体可用于代码完成的属性,并且可以为这些子类添加便捷方法。
要创建NSManagedObject的子类,请在Xcode的Core Data模型编辑器中选择实体,然后在“数据模型”检查器的“实体”窗格中,在“类”字段中输入名称。然后在Xcode中创建子类(AAAEmployeeMO)。
'创建NSManagedObject子类...'在编辑器菜单中。您可以一次创建所有子类。您可以将方法添加到NSManagedObject子类。