Profundo copiando un NSArray

¿Hay alguna función incorporada que me permita copiar en profundidad unaNSMutableArray?

Miré a mi alrededor, algunas personas dicen[aMutableArray copyWithZone:nil] funciona como copia profunda. Pero lo intenté y parece ser una copia superficial.

hora mismo estoy haciendo la copia manualmente con unfor lazo

//deep copy a 9*9 mutable array to a passed-in reference array

-deepMuCopy : (NSMutableArray*) array 
    toNewArray : (NSMutableArray*) arrayNew {

    [arrayNew removeAllObjects];//ensure it's clean

    for (int y = 0; y<9; y++) {
        [arrayNew addObject:[NSMutableArray new]];
        for (int x = 0; x<9; x++) {
            [[arrayNew objectAtIndex:y] addObject:[NSMutableArray new]];

            NSMutableArray *aDomain = [[array objectAtIndex:y] objectAtIndex:x];
            for (int i = 0; i<[aDomain count]; i++) {

                //copy object by object
                NSNumber* n = [NSNumber numberWithInt:[[aDomain objectAtIndex:i] intValue]];
                [[[arrayNew objectAtIndex:y] objectAtIndex:x] addObject:n];
            }
        }
    }
}

pero me gustaría una solución más limpia y sucinta.

Respuestas a la pregunta(6)

Su respuesta a la pregunta