面試時我們總會被問到你理解深拷貝和淺拷貝的區別嗎
淺拷貝是複製一個新的指針,指向同一塊內存區域
深拷貝是內容拷貝,拷貝數據到一塊新區域內存,指針指向拷貝的數據去
strong是淺拷貝
可變字符串或數組(NSMutable)在copy後會發生深拷貝,拷貝出來的是一個NSTrggedPointerString,是一個不可變字符串
不可變字符串或數組(NSString)在copy後會發生淺拷貝
copy出來的一定是不可變字符串,被拷貝對象是可變數組或字符串,則是深拷貝,反正是淺拷貝
MutableCopy不管被拷貝對象是不是可變的,都是深拷貝,且拷貝出來對象一定是可變字符串或數組
所以在NSString使用copy,是不可變的,爲了數據安全性