Simplemente me gustaría saber cómo copiar un NSMutableArray para que cuando cambie el conjunto, mi referencia no cambie. ¿Cómo puedo copiar una matriz?Cómo copiar un NSMutableArray
20
A
Respuesta
47
Hay múltiples maneras de hacerlo:
NSArray *newArray = [NSMutableArray arrayWithArray:oldArray];
NSArray *newArray = [[[NSMutableArray alloc] initWithArray:oldArray] autorelease];
NSArray *newArray = [[oldArray mutableCopy] autorelease];
Estos serán todos crear copias de poca profundidad, sin embargo.
(Editar: Si está trabajando con ARC, basta con borrar las llamadas a autorelease
.)
Para copias profundas uso de este lugar:
NSMutableArray *newArray = [[[NSMutableArray alloc] initWithArray:oldArray copyItems:YES] autorelease];
A tener en cuenta: Por razones obvias, este último requerirá que todos los objetos de elemento de su matriz implementen NSCopying
.
Cuestiones relacionadas
- 1. Cómo agregar un NSMutableArray a un NSMutableArray Objective-c
- 2. Cómo cortar NSMutableArray
- 3. Evite copiar NSMutableArray para leer con escrituras multiproceso
- 4. Cómo vaciar correctamente un NSMutableArray
- 5. Inicializar NSMutableArray: [NSMutableArray matriz];
- 6. Cómo devolver un NSMutableArray de un NSSet
- 7. ¿Cómo inicializar un NSMutableArray en Objective C?
- 8. ¿Cómo puedo crear un NSMutableArray de estructuras?
- 9. cómo agregar un objeto a NSMutableArray
- 10. Cómo almacenar valores enum en un NSMutableArray
- 11. ¿Cómo mover un elemento en NSMutableArray?
- 12. Cómo buscar a través de un NSMutableArray
- 13. ¿Cómo puedo ordenar un NSMutableArray alfabéticamente?
- 14. ¿Cómo agregar un valor entero en NSMutableArray?
- 15. ¿Cómo copiar un archivo?
- 16. Concatenar un NSMutableArray al final de otro NSMutableArray
- 17. cómo comparar dos NSMutableArray?
- 18. Copia NSMutableArray a otro
- 19. Cambiar un valor dentro de un NSMutableArray
- 20. Intercambiando elementos en un NSMutableArray
- 21. ¿Cómo puedo convertir NSMutableArray en NSString?
- 22. Cómo almacenar CGGradientRef en NSMutableArray
- 23. NSMutableArray alloc init vs arsenal NSMutableArray
- 24. iPhone - agregando un CGPath a un NSMutableArray ... ¿cómo?
- 25. ¿Cómo guardo un NSRange en un NSMutableArray u otro contenedor?
- 26. ¿Cómo uso un NSMutableArray como un DataSource para mi UITableView
- 27. Cómo ordenar NSMutableArray utilizando sortedArrayUsingDescriptors?
- 28. cómo dividir cadena en NSMutableArray
- 29. cómo almacenar NSMutableArray en NSUserDefaults
- 30. Cómo convertir NSArray a NSMutableArray
¿Qué quiere decir con copias superficiales y profundas? – Supertecnoboff
@Supertecnoboff: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Collections/Articles/Copying.html – Regexident
Gracias, muy interesante. Nunca supe sobre estos conceptos. – Supertecnoboff