2009-08-08 14 views
5

Tengo un NSArrayController que contiene algunos elementos. Estos elementos tienen algunos atributos como 'nombre', 'interformación', etc.Encontrar un elemento específico en un NSArrayController

Lo que quiero es simplemente encontrar un elemento en el NSArrayController que tenga el atributo de nombre establecido, digamos, 'Mads'.

Dado que la eficiencia no es un gran problema aquí, simplemente haría una búsqueda lineal iterando sobre todos los elementos en el NSArrayController mientras verifico si el atributo 'nombre' es 'Mads'.

Pero parece que no puedo obtener un NSIterator del NSArrayController, así que me pregunto si hay otra forma de hacerlo.

Cualquier ayuda es apreciada

Respuesta

5

¿Qué le parece usar el contenido?

es decir

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

Obtener el arrangedObjects, que es una matriz, y, o bien iterar en que o bien utiliza filteredArrayUsingPredicate:.

Suponiendo que no sería más apropiado configurar el filterPredicate del controlador de array. Si va por ese camino, entonces arrangedObjects contendrá solo los objetos coincidentes.

+1

Parece que no puedo aceptar dos respuestas a una pregunta:/pero esta respuesta es igual. –

Cuestiones relacionadas