Cuando hago un NSArray
usando + [NSArray arrayWithObjects:]
, ¿copia esos objetos? Si lanzo los objetos después de agregarlos a la matriz, ¿tendré problemas?¿NSArray copia objetos?
15
A
Respuesta
35
No, no las copia. Los retiene. Sí, puede liberar los objetos de forma segura después de agregarlos a la matriz.
The docs, como siempre, esto de manifiesto con toda claridad:
matrices mantienen fuertes referencias a su contenido-en un entorno de memoria administrada, cada objeto recibe un mensaje retienen antes de añadir su identificador a la matriz y un mensaje de liberación cuando se elimina de la matriz o cuando la matriz se desasigna. Si desea una colección con una semántica de propiedad de objetos diferente, considere usar CFArray Reference, NSPointerArray o NSHashTable.
Cuestiones relacionadas
- 1. NSArray lleno de objetos bool
- 2. NSArray de objetos y Casting
- 3. Buscando NSArray de objetos NSDictionary
- 4. Ordenar NSArray con la costumbre objetos
- 5. Filtrado NSArray de objetos NSDictionary utilizando NSPredicate
- 6. Cantidad máxima de objetos en NSArray
- 7. Filtrar una NSArray que contiene objetos personalizados
- 8. extrayendo propiedades de NSArray de los objetos
- 9. objetos Restar en uno NSArray de otra matriz
- 10. ¿La mejor manera de ordenar un NSArray de objetos NSDictionary?
- 11. ¿Cómo ordenar NSArray con objetos de diccionario alfabéticamente?
- 12. Ordenar NSArray de objetos personalizados por sus propiedades NSDate
- 13. NSArray: agregue varios objetos con el mismo valor
- 14. NSArray independiente a una lista de objetos de tipo NSString
- 15. Cómo agregar objetos a un NSArray usando for loop?
- 16. Cacao: deserializar json cadena a objetos personalizados (no NSDictionary, NSArray)
- 17. Obtiene n objetos aleatorios (por ejemplo 4) de nsarray
- 18. NSArray of united Arrays
- 19. NSIndexSet de NSArray
- 20. Convertir NSArray en NSDictionary
- 21. Obtener un NSArray de un solo atributo de un NSArray
- 22. Cómo usar NSArray del objeto NSArray en el objetivo c?
- 23. NSArray containsObject method
- 24. Enumeración de NSArray múltiple
- 25. Ejecutando bloques desde NSArray?
- 26. NSArray en orden descendente
- 27. clasificar un NSArray de NSDates
- 28. previene la copia accidental de objetos en C++
- 29. ¿Se pueden lanzar objetos con constructores de copia privada?
- 30. Reorganizar NSArray/MSMutableArray en orden aleatorio
Gran respuesta. También recuerde que + arrayWithObjects: devuelve una matriz sin propietario ("autoreleased"), por lo que debe conservarla para evitar perderla, pero el objeto en la matriz estará disponible mientras dure la matriz. –
¡Muchas gracias! Debes saber que busco en la documentación antes de publicar en Stack Overflow (aunque a veces no encuentro todo). Gracias por tomarse el tiempo para responder mi pregunta. –
Gracias por la respuesta, aunque esa propaganda ya no está en la referencia, FYI. Por lo que puedo decir, toda esa sección se ha ido. Solo puede inferirlo mirando la información de subclases y algunas de las llamadas a funciones, y eso principalmente porque me indicó la dirección correcta. – RonLugge