Ответ почти есть в указанном вами URL документации. Допустим, есть два человека personA
и personB
. Вы можете получить их соответствующих друзей по
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, где дружба взаимна. Но если вы пойдете по этому пути и захотите рассчитывать на дружбу только тогда, когда два человека дружат друг с другом, то это еще один дополнительный шаг к этому. Чтобы найти друзей человека в этом случае, вы должны сделать перекресток для его друзей и тех, кто подружился с ним.