2010-07-28 16 views

Respuesta

17

Como han señalado otros, NSArray/NSMutableArray son lo que estás buscando.

Viniendo desde el mundo de Java, es posible que las ofertas de colección de Cocoa sean bastante insignificantes. De hecho, la funcionalidad es bastante extensa. El NSArray, NSDictionary y NSSet son, de hecho, class clusters, lo que significa que la API pública es una clase "abstracta". Cuando inicializa una de las colecciones, lo que obtiene es, de hecho, una implementación concreta adaptada a los datos que proporciona. Estas implementaciones también pueden cambiar la implementación concreta en tiempo de ejecución si los datos cambian (por ejemplo, aumenta de tamaño). Todo esto es posible gracias al tiempo de ejecución mucho más dinámico de Objective-C que el que permitirá el tipado (y la seguridad) estáticos de Java. La estrategia de clúster de clase oculta así muchas de las implementaciones de, p. la interfaz java.util.List, detrás de una única API.

Las estructuras de Cocoa son algo limitadas en las estructuras de datos compuestos (es decir, aquellas construidas sobre matrices, conjuntos y diccionarios "primitivos"). Puede encontrar que el excelente código abierto CHDataStructures llena muchos de los huecos.

+0

Estoy buscando lo mismo que Julio y veo muchas respuestas que dicen "cierra los ojos y usa NS \ * Array ...". Pero a menudo realmente desea usar explícitamente una lista vinculada, p. para la inserción/eliminación constante de cualquier elemento (NS \ * Array no lo garantiza). Elegir la estructura de datos correcta en función de su patrón de acceso conocido es fundamental para el rendimiento. Como recién llegado al desarrollo de iOS, no entiendo por qué Cocoa parece quitarle esta decisión al programador. –