2009-08-08 18 views
5

Ho un controller NSArray che contiene alcuni elementi. Questi elementi hanno alcuni attributi come 'name', 'interformation' ecc.Trovare un elemento specifico in un NSArrayController

Quello che voglio è semplicemente trovare un elemento nel controller NSArray che ha l'attributo name impostato su, diciamo, 'Mads'.

Dal momento che l'efficienza non è un grande problema, farei semplicemente una ricerca lineare ripetendo tutti gli elementi in NSArrayController mentre verifichi se l'attributo 'nome' è 'Mads'.

Ma non riesco a ottenere un NSIterator da NSArrayController, quindi mi chiedo se c'è un altro modo per farlo?

Qualsiasi aiuto è gradito

risposta

5

Come utilizzare il contenuto?

cioè

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

garantita la arrangedObjects, che è una matrice, e sia iterare su tale oppure usa filteredArrayUsingPredicate:.

Supponendo che non sarebbe più appropriato impostare filterPredicate del controller di array. Se si va in questo modo, quindi arrangedObjects conterrà solo gli oggetti corrispondenti.

+1

Non è possibile accettare due risposte a una domanda apparentemente:/ma questa risposta è ugualmente. –

Problemi correlati