An object can create a copy of an object using the copy and Mutablecopy methods
Copy: The nscopying protocol needs to be implemented beforehand, and the replica created is an immutable copy (such as Nsstring,nsarray,nsdictionary)
Mutablecopy: You need to implement the Nsmutablecopying protocol first, creating a mutable copy (such as Nsmutablestring,nsmutablearray,nsmutabledictionary)
Deep copy: A copy of the content, the source object and the copy point to a different two objects. The source object reference counter is unchanged, and the replica counter is set to 1
Shallow copy: pointer copy, source object and copy point to the same object. Object reference counter +1 is actually equivalent to doing a retain operation
Only immutable objects Create immutable replicas (copy) is shallow copy, others are deep copy
Copy and Mutablecopy