2009-09-17 23 views
10

¿Cómo procedería a mostrar el contenido de un NSSet en un UITableView?¿Cómo mostrar un NSSet en una UITableView?

Como ya sabe, la vista de tabla solicitará el elemento en una fila determinada, pero como los elementos NSSet no están ordenados, esto no se combina bien.

Mi solución actual es iterar a través del NSSet hasta llegar al elemento en un índice dado, pero esto realmente no me parece correcto.

Puede preguntar por qué no uso un NSArray en su lugar. Esto se debe a que estoy usando Core Data, que usa NSSet para almacenar la colección de elementos.

Cualquier ayuda sería apreciada.

Respuesta

28

Como solo muestra los elementos, ¿por qué no toma el NSSet y llama al -[allObjects] para obtener un NSArray?

Si sus datos cambian, tendrá que volver a buscar de todos modos, incluso con un NSSet, y aparte de la conversión inicial de NSSet, el uso de la matriz es bastante rápido.

+2

Me siento tan estúpido ahora que he leído su respuesta;) –

+7

Entonces, ¿podríamos suponer con seguridad que 2 llamadas consecutivas a "todos los Objetos" devuelven los elementos en el mismo orden (cuando el NSSet no ha sido cambiado)? Debido a que la documentación solo dice que el "orden no está definido", no menciona que el orden es estable. Y si ahora es estable, ¿estás seguro de que se mantendrá estable en futuras versiones de iOS? No estoy tan seguro de confiar en esta función para obtener elementos que puedo mostrar en una vista de tabla. –

+0

@ChristopheFondacci simplemente llame a 'allObjects' una vez y guarde el resultado en una variable hasta que se cierre el VC, o hasta que el conjunto se cambie de nuevo. –

Cuestiones relacionadas