2011-04-23 23 views

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.

+0

¿Qué quiere decir con copias superficiales y profundas? – Supertecnoboff

+0

@Supertecnoboff: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Collections/Articles/Copying.html – Regexident

+0

Gracias, muy interesante. Nunca supe sobre estos conceptos. – Supertecnoboff

Cuestiones relacionadas