Objective c 核心数据建模:多对多桥梁

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 用户>遵循这是最

这个问题以前可能在这里提出过,但我不相信我已经理解了解决方案。在Objective-C中,iOS的核心数据就是一个问题

我将建立一个类似于twitter的用户跟随关系模型,一个用户可以跟随多个用户,并且被多个用户跟随。以下内容本身具有诸如createTime、pending和level等属性—这意味着,我不能仅仅让用户拥有follower和followerd这样的双向关系,比如:

用户用户

但是再添加一个实体Following,其关系类似于Following和followind

用户>遵循这是最佳实践吗

我不认为这个问题属于“已建立最佳实践的情况”,但这似乎是一个合理的解决方案

如果是,如何编写[aUser valueForKeyPath:…];招来他/她的追随者或朋友(被跟踪)

假设
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实体的示例,它更详细地描述了您正在使用的模式

注意:该链接指向《苹果核心数据编程指南》中的“关系和获取的属性”部分,没有苹果开发人员帐户的用户可以使用该部分,也可以不使用该部分,当然可能会有更改