Note that this article only says the conclusion does not say the process
1. For non-container class objects of the system, we can assume that if copying an immutable object, copy is pointer copy (shallow copy) and mutablecopy is the object copy (deep copy). If it is a copy of a mutable object, it is a deep copy, but the object returned by copy is immutable.
2. The System container class object, refers to Nsarray,nsdictionary and so on. For the container class itself, the conclusion of the first discussion is also applicable, and it is necessary to explore the changes of the objects in the container after replication. The conclusion of the deep copy can be viewed in the official Apple document; address https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Collections/ Articles/copying.html
3. If it is our custom object, then we must abide by the nscopying,nsmutablecopying, and implement Copywithzone:,mutablecopywithzone: Method, So you can call copy and mutablecopy.
Deep copy and shallow copy of IOS