[英]Relationship in Core Data as NSSet
我有一个类别的实体和一个子类别的实体。 它是一对多的,因为一个类别可以有许多子类别。 我仍在努力将所有事情缠住,所以请忍受...
extension Category {
@NSManaged var name: String?
@NSManaged var subCategory: SubCategory?
}
extension SubCategory {
@NSManaged var name: String?
}
然后在代码中的其他地方(例如某些视图控制器)进行调用
let category = NSEntityDescription.insertNewObjectForEntityForName("Category", inManagedObjectContext: self.context) as! Category
let sub = SubCategory()
sub.name = "sub1"
category.subCategory = sub
//save it
然后,当我查看实际的核心数据Sqlite db时,可以看到Category实体的ZSUBCATEGORY列填充有sub category实体的主键值。 我已经在数据模型中定义了关系。
我的问题是,我注意到某些关系是通过NSSet存储的。 这样做有什么好处吗? 我在做错事吗? 对我来说,这似乎比较简单,然后我可以做...
category.subcategory.name
获取子类别名称
如果这是一对一的关系,那么确实可以做到这一点:
category.subcategory.name
这就是您在此示例中所做的,已经定义了一对一关系。 如果要比定义多一:
extension Category {
@NSManaged var name: String?
@NSManaged var subCategory: NSSet?
}
这种方式将类别与子类别的数量链接在一起,所以如果您愿意
category.subcategory.name
您怎么知道您正在访问哪个子类别? 您将不得不遍历set,以找到要查找的一个子类别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.