2010-01-15 2 views
0

Comme précédemment, j'ai des entités Utilisateur et Ami, un utilisateur pour de nombreux amis.Relation de base de données de un à plusieurs - Est-ce que plusieurs contiennent des attributs avec des valeurs x

Je voudrais être en mesure de vérifier si j'ai déjà ajouté un ami (alors qu'à ce stade je ne connaissais que le nom du nouvel ami potentiel à ce moment-là). Alors

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

La seule façon que je peux voir à faire est de parcourir tous les objets ami et vérifier contre un attribut pour voir si son là-bas, et si après toutes les itérations, il ne trouve aucune correspondance, ajoutez-le.

Y a-t-il un meilleur moyen?

Répondre

1

est ici un moyen différent:

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

En outre, vous devez casser tôt si vous le faites votre chemin:

for(Friend *friend in user.friends) 
{ 
    if([friend.name isEqualToString:name]) { 
     exists = YES; 
     break; 
    } 
} 
+0

merci encore - j'apprends un beaucoup aujourd'hui :-) – mootymoots

Questions connexes