了解Core Data中实体之间的关系。我没有看到建立两个实体之间关系的真正原因。如果其中一个实体包含可以通过具有NSManagedObject
类型的属性来容纳另一个实体的属性,则可以单独连接它们。
@property (nonatomic, strong ) NSManagedObject *AssetType;
答案 0 :(得分:2)
这是一个你必须理解的概念:核心数据不是数据库,但它是一个对象图管理器,作为第二个功能,提供持久性(例如使用Sqlite存储)。
这样说,如果你有两个独立的实体,并且需要根据属于另一个实体的条件检索值,则需要运行两个请求并将结果过滤到内存中。相反,如果您设置了关系,则可以使用特定谓词创建请求,并让Core Data为您检索正确的结果。此外,通过关系,您可以访问属于另一个实体的对象,就像访问属性对象一样简单。例如,以下代码段表示基于entityA
我可以访问属性calles someRelationship
,该属性允许检索EntityB
类型的一个(或多个)实体。如果已将someRelationship
设置为多个,您将收到一个或多个EntityB
个实体。
entityB = entityA.someRelationship;
真正的建议是根据对象图 !!!
进行思考进一步参考:Core Data Overview by objc.io。
更新1
另一个重要优势是关系允许您利用删除规则,并且通过反向关系,您可以保持图表的完整性。