Copie en profondeur et la Copie Superficielle

J'ai lu la réponse de la différence entre la copie et la copie superficielle de la poste, Quelle est la différence entre une copie et une copie? . Maintenant j'ai un peu de doute que lorsque l'on fait une copie par

 newArray = [NSmutableArray arrayWithArray:oldArray];

la nouvelle matrice de point de oldArray. (À partir de la figure). Maintenant ce qui se passe quand je supprimer l'objet de newArray? Comme à partir de la figure, il faut supprimer un élément à partir de oldArray trop !!! Il semble que

newArray = oldArray est une copie superficielle et newArray = [NSmutableArray arrayWithArray:oldArray]; est copie en profondeur. Est-il juste?

newArray = oldArray n'est pas une copie. C'est juste une deuxième variable qui pointe sur la même matrice.
À l'aide de arrayWithArray:, vous avez un nouveau array référencement sur les mêmes objets.
C'est un moyen de copier la matrice de copie en profondeur stackoverflow.com/a/647269/1189448
J'ai trouvé cette bonne réponse à la copie réelle profondeur copie stackoverflow.com/a/15040786/1189448

OriginalL'auteur rakeshNS | 2012-03-28