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 de objetos y Casting
- 2. NSArray lleno de objetos bool
- 3. Buscando NSArray de objetos NSDictionary
- 4. Ordenar NSArray con la costumbre objetos
- 5. Filtrar una NSArray que contiene objetos personalizados
- 6. Cantidad máxima de objetos en NSArray
- 7. Filtrado NSArray de objetos NSDictionary utilizando NSPredicate
- 8. extrayendo propiedades de NSArray de los objetos
- 9. NSArray: agregue varios objetos con el mismo valor
- 10. Obtiene n objetos aleatorios (por ejemplo 4) de nsarray
- 11. Ordenar NSArray de objetos personalizados por sus propiedades NSDate
- 12. NSArray independiente a una lista de objetos de tipo NSString
- 13. ¿Cómo ordenar NSArray con objetos de diccionario alfabéticamente?
- 14. Cacao: deserializar json cadena a objetos personalizados (no NSDictionary, NSArray)
- 15. objetos Restar en uno NSArray de otra matriz
- 16. Cómo agregar objetos a un NSArray usando for loop?
- 17. ¿La mejor manera de ordenar un NSArray de objetos NSDictionary?
- 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. ¿Se pueden lanzar objetos con constructores de copia privada?
- 29. previene la copia accidental de objetos en C++
- 30. Copia eficiente de una matriz de objetos a una matriz más grande de objetos
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