不可變對象執行不可變拷貝(copy)就是淺拷貝spa
若是執行拷貝時 只要有可變的不管是可變對象仍是可變拷貝(mutableCopy)就是深拷貝指針
只有源對象和副本對象都不可變纔是淺拷貝,其它都是深拷貝!對象
copy 建立的是不可變副本(NSString , NSArray, NSDictionary)io
mutableCopy 建立的是可變副本 (NSMutableString, NSMutableArray, NSMutableDictionary)
table
shallow copy 淺拷貝(指針拷貝):至關於作了一次retain操做 引用計數器加1 沒有產生新的對象 源對象和副本對象是同一個對象!引用
deep copy 深拷貝(內容拷貝):源對象和副本對象是兩個不一樣的對象,源對象的計數器不變,副本對象計數器加1(產生了一個新的對象)tab