Pregunta

¿Cuál es la diferencia?

En mi contexto, necesito poder agregar y eliminar dinámicamente objetos. El usuario hace clic en las filas de una tabla que se activan y desactivan y, por lo tanto, agregan o eliminan el objeto referenciado de la lista.

¿Una suposición descabellada es que la matriz tiene elementos indexados mientras que el conjunto no tiene índices?

¿Fue útil?

Solución

Un NSSet / NSMutableSet no mantiene los elementos en ningún orden en particular. Un NSArray / NSMutableArray almacena los elementos en un orden particular. Si está creando una vista de tabla, definitivamente debe usar una matriz como fuente de datos de su elección.

Otros consejos

Además, NSMutableSet se asegura de que todos los objetos sean únicos.

NSMutableArray funciona bien con UITableView ya que los elementos tienen índice, por lo que puede devolver [recuento de matriz] para obtener el número de filas de la tabla, o [array objectAtIndex: rowNumber] para asociar fácilmente el elemento con la fila.

Además, de acuerdo con la documentación , la prueba de pertenencia a objetos es más rápida con NSSets.

  

Puede usar conjuntos como alternativa a las matrices cuando el orden de   los elementos no son importantes y el rendimiento en la prueba de si un objeto   está contenido en el conjunto es una consideración & # 8212; mientras se ordenan las matrices,   las pruebas de membresía son más lentas que con conjuntos.

Bueno, hay 3 diferencias principales. 1) Los conjuntos no están ordenados 2) No tiene un índice & amp; 3) No puede tener valores duplicados donde las matrices están ordenadas, indexadas & amp; Puede almacenar valores duplicados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top