Основные данные Отношение один ко многим - содержит ли многие атрибут со значением x - PullRequest
0 голосов
/ 15 января 2010

Как и прежде, у меня есть сущности Пользователь и Друг, от одного пользователя ко многим друзьям.

Я хотел бы иметь возможность проверить, добавил ли я ранее друга (хотя на данный момент знал только имя потенциального нового друга). Так

NSString *name = @"Bob";
Bool exists = NO;
for(Friend *friend in user.friends)
{
      if([friend.name isEqualToString:name])
           exists = YES;
}
if(!exists)
{
    //add user
}

Единственный способ сделать это - перебрать все объекты Friend и проверить наличие атрибута, и если после всех итераций он не найдет соответствия, добавьте его.

Есть ли лучший способ?

Ответы [ 2 ]

1 голос
/ 15 января 2010

Вот другой способ:

BOOL exists = ([[user.friends filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"name == %@",name]] count] > 0);

Кроме того, вы должны прерваться пораньше, если вы делаете это по-своему:

for(Friend *friend in user.friends)
{
    if([friend.name isEqualToString:name]) {
        exists = YES;
        break;
    }
}
1 голос
/ 15 января 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...