繁体   English   中英

核心数据中的关系作为NSSet

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM