retain:指針拷貝,只是retainCount加一,實際上還是共用一塊內存
copy:不論拷貝的是不是集合對象,只要被拷貝的對象是不可變的,那就是指針拷貝,是淺拷貝,僅僅retainCount加一
深拷貝會分配出一塊內存,然後將引用的內容拷貝進去,也就是說拷貝出來的對象與原對象是獨立的。
copy:拷貝可變對象則是深拷貝
mutableCopy:不論被拷貝的是不是集合對象,是可變的還是不可變的,都是深拷貝
注意:如果mutableCopy的是集合對象,深拷貝的是該集合對象,不是指該集合對象裡面的元素,稱之為單層深拷貝,對該集合裡的元素依然是指針拷貝
總結
copy:只要copy的是不可變對象,都是淺拷貝,copy**可變集合象則是單層深拷貝,拷貝可變非集合**對象則是深拷貝
mutableCopy:拷貝集合象則是單層深拷貝,拷貝非集合對象則是深拷貝
推薦
IOS 集合的深復制與淺復制
【iOS 深拷貝和淺拷貝】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!