在Core Data中列出共同朋友

时间:2010-01-06 04:06:00

标签: iphone core-data join

我正在使用Core Data中的中间连接表,类似于Apple的核心数据编程指南中的朋友示例。对不起,由于没有声望点,无法发布图片。它是一个与FriendInfo中间联接关系的朋友实体,具有朋友和朋友信息的关系。以下链接描述了它。

link text

我如何获得共同朋友的名单,即A人和B人分享为朋友的人?我想把它放到iPhone应用程序表视图中。

1 个答案:

答案 0 :(得分:2)

答案几乎就在您提供的文档网址中。假设有两个人personApersonB

你可以得到他们各自的朋友
NSSet *friendsOfPersonA = [personA valueForKeyPath:@"friends.friend"];
NSSet *friendsOfPersonB = [personB valueForKeyPath:@"friends.friend"];

设置交叉点以寻找普通朋友

NSSet *commonFriends = [[NSMutableSet alloc] initWithSet:friendsOfPersonA];
[commonFriends intersectSet:friendsOfPersonB];

集合commonFriends应该是你想要的。

注意:Apple提供的示例包含befriendedBy等附加属性。通常情况并非如Facebook这样的在线社交网络,友谊是相互的。但是如果你是走这条路并且只想在两个人是彼此的朋友的情况下想要计算友谊,那么到达那里是一个额外的步骤。在这种情况下,为了找到一个人的朋友,你要为一个人的朋友和那些与他成为朋友的朋友做一个交集。