Список общих друзей в Core Data - PullRequest
2 голосов
/ 06 января 2010

Я работаю с промежуточной таблицей соединений в Core Data, аналогичной примеру друзей из Руководства по программированию основных данных Apple. Извините, пока не могу опубликовать фотографии из-за отсутствия очков репутации. Это сущность друзей, связанная с промежуточным соединением FriendInfo, отношениями друзей и информацией о друзьях. Следующая ссылка описывает это.

текст ссылки

Как я могу получить список общих друзей, то есть людей, которых и Лицо А, и Лицо Б разделяют как друзья? Я хочу поместить это в представление таблицы приложения iPhone.

1 Ответ

2 голосов
/ 06 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...