Objective c 核心数据建模:多对多桥梁
这个问题以前可能在这里提出过,但我不相信我已经理解了解决方案。在Objective-C中,iOS的核心数据就是一个问题 我将建立一个类似于twitter的用户跟随关系模型,一个用户可以跟随多个用户,并且被多个用户跟随。以下内容本身具有诸如createTime、pending和level等属性—这意味着,我不能仅仅让用户拥有follower和followerd这样的双向关系,比如: 用户用户 但是再添加一个实体Following,其关系类似于Following和followind 用户>遵循这是最佳实践吗 我不认为这个问题属于“已建立最佳实践的情况”,但这似乎是一个合理的解决方案 如果是,如何编写[aUser valueForKeyPath:…];招来他/她的追随者或朋友(被跟踪) 假设Objective c 核心数据建模:多对多桥梁,objective-c,core-data,many-to-many,Objective C,Core Data,Many To Many,这个问题以前可能在这里提出过,但我不相信我已经理解了解决方案。在Objective-C中,iOS的核心数据就是一个问题 我将建立一个类似于twitter的用户跟随关系模型,一个用户可以跟随多个用户,并且被多个用户跟随。以下内容本身具有诸如createTime、pending和level等属性—这意味着,我不能仅仅让用户拥有follower和followerd这样的双向关系,比如: 用户用户 但是再添加一个实体Following,其关系类似于Following和followind 用户>遵循这是最
Following
对于执行以下操作的人有一个follower
属性,对于被跟踪的人有一个leader
属性。此外,用户
对于与跟随用户的人的后续关系
具有leads
属性,对于与跟随用户的人的后续关系
具有follows
属性。最后,User
还有一个name
属性
考虑到所有这些,要获得aUser追随者的名字,你可以说:
NSSet*followers=[aUser valueForKeyPath:@“leads.follower.name”]
要获得aUser的姓名,请执行以下操作:
NSSet*leaders=[aUser valueForKeyPath:@“follows.leader.name”]
一开始似乎有点奇怪,因为每个路径中的最后两个关键点都是单数的,所以从这些关键点路径中会得到集合。但是,由于
leads
属性返回一组Following
对象,因此leads.follower
返回一组包含每个对象的用户,和leads.follower.name
返回一个包含这些对象的用户名称的集合。我在这里找到了一个很好的示例,说明了您试图实现的目标,我想与大家分享一下。在“多对多关系”标题下进行检查。您应该找到一个使用Person实体和FriendInfo实体的示例,它更详细地描述了您正在使用的模式
注意:该链接指向《苹果核心数据编程指南》中的“关系和获取的属性”部分,没有苹果开发人员帐户的用户可以使用该部分,也可以不使用该部分,当然可能会有更改