2009-08-08 9 views
5

J'ai un NSArrayController qui contient quelques éléments. Ces éléments ont quelques attributs comme 'nom', 'interformation', etc.Recherche d'un élément spécifique dans un NSArrayController

Ce que je veux, c'est simplement trouver un élément dans NSArrayController dont l'attribut name est défini sur, disons, 'Mads'.

Puisque l'efficacité n'est pas un gros problème ici je ferais juste une recherche linéaire en itérant sur tous les éléments dans le NSArrayController tout en vérifiant si l'attribut 'name' est 'Mads'.

Mais je n'arrive pas à obtenir un NSIterator de NSArrayController, donc je me demande s'il y a une autre façon de le faire?

Toute aide est appréciée

Répondre

5

Comment utiliser le contenu?

-à-dire

// ac is an NSArrayController* 
for (MyObject *mob in ac.content) { 
    if ([mob.name isEqualToString:@"something"]) { 
     // found 
     break; 
    } 
} 
8

Obtenez le arrangedObjects, qui est un tableau, et soit itérer sur cela ou utiliser filteredArrayUsingPredicate:.

Cela suppose qu'il ne serait pas plus approprié de définir le filterPredicate du contrôleur RAID. Si vous partez de cette façon, alors arrangedObjects ne contiendra que les objets correspondants.

+1

Impossible d'accepter deux réponses à une question apparemment:/mais cette réponse est également. –

Questions connexes