iOS中深淺拷貝

面試時我們總會被問到你理解深拷貝和淺拷貝的區別嗎 

淺拷貝是複製一個新的指針,指向同一塊內存區域

深拷貝是內容拷貝,拷貝數據到一塊新區域內存,指針指向拷貝的數據去

strong是淺拷貝

可變字符串或數組(NSMutable)在copy後會發生深拷貝,拷貝出來的是一個NSTrggedPointerString,是一個不可變字符串

不可變字符串或數組(NSString)在copy後會發生淺拷貝

copy出來的一定是不可變字符串,被拷貝對象是可變數組或字符串,則是深拷貝,反正是淺拷貝

MutableCopy不管被拷貝對象是不是可變的,都是深拷貝,且拷貝出來對象一定是可變字符串或數組

所以在NSString使用copy,是不可變的,爲了數據安全性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章