Cómo copiar un NSMutableArray

Me gustaría simplemente para saber cómo copiar un NSMutableArray así que cuando me cambio de la matriz, mi referencia a que no cambia. ¿Cómo puedo copiar un array?

1 Kommentar

  1. 47

    Hay varias formas de hacerlo:

    NSArray *newArray = [NSMutableArray arrayWithArray:oldArray];
    
    NSArray *newArray = [[[NSMutableArray alloc] initWithArray:oldArray] autorelease];
    
    NSArray *newArray = [[oldArray mutableCopy] autorelease];

    Estos se crean superficial copias, aunque.

    (Edición: Si estás trabajando con ARCO, basta con borrar las llamadas a autorelease.)

    Para profundo copias el uso de este lugar:

    NSMutableArray *newArray = [[[NSMutableArray alloc] initWithArray:oldArray copyItems:YES] autorelease];

    Vale la pena destacar: Por razones obvias, el último requerirá toda tu matriz del elemento de objetos para implementar NSCopying.

    • ¿Qué significa para ti superficial y profunda copias??
    • href=»https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Collections/Articles/Copying.html» >developer.apple.com/library/mac/documentation/Cocoa/Conceptual/…
    • Gracias, muy interesante. Nunca supe de este concepto.
    • Una copia superficial es una nueva matriz que contiene las referencias a los mismos elementos, una copia en profundidad es una nueva matriz que contiene copias de cada elemento. Si usted hizo una copia superficial y, a continuación, cambia uno de los elementos de la matriz original, la copia superficial también muestran este cambio. Si era una copia profunda que no.
    • [sourceArray mutableCopy] con iOS 10 es un gran trabajo

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea