深淺拷貝前提是:是實現nscopying或者nsmutablecopying協議。
淺拷貝只是複製物件本身,物件的屬性和包含的物件不做複製。
深拷貝則對物件本身複製,同是對物件的屬性也進行複製。
深淺拷貝的本質區別是物件或者物件屬性的記憶體位址是否一樣,一樣則為淺拷貝,不一樣則為深拷貝。
foundation框架支援複製的類,預設是淺拷貝。其中對foundation中不可變的物件進行copy時作用相當於retain。
而如果是mutablecopy時,無論物件是否可變,副本是可變的,並且實現了真正意義上的copy。如果對可變物件進行copy,
副本物件是不可變的,同樣是真正意義上的copy。
retain:始終是淺複製。引用計數每次加一。返回物件是否可變與被複製的物件保持一致。
copy:對於可變物件為深複製,引用計數不改變;對於不可變物件是淺複製,
引用計數每次加一。始終返回乙個不可變物件。
mutablecopy:始終是深複製,引用計數不改變。始終返回乙個可變物件。
參考:
評論 百度的框,百度的誑
最後,我分享乙個故事 有一片魚塘,有很多漁民,一邊養魚,一邊釣魚,旁邊有一家餐館,專門收購釣起來的魚烹製成菜,因其地理位置極佳而吸引了很多 遊人前 來就餐,有一天,這家餐館與最會釣魚的漁民甲達成了專供協議,餐館選單上顯著位置都是漁民甲所提供的魚類菜餚,於是漁民甲開始忙碌 發財,遊人們也很高興 這家餐...
百度權重和百度權重的計算
其實很多站長從事seo的工作已經很多年了,但是還是有那麼一部分站長對於權重的概念和計算方法了解的不夠透徹,包括筆者也是一樣的,筆者今天之所以寫這篇文章原因,就是希望通過我的分享能夠讓更多的站長,進一步加深他們對權重以及權重計算的認知。什麼是權重?什麼是 權重?權重指的是乙個 綜合排名的能力。站長工具...
深淺拷貝以及深淺拷貝的方法
先考慮一種情況,對乙個已知物件進行拷貝,編譯系統會自動呼叫一種建構函式 拷貝建構函式,如果使用者未定義拷貝建構函式,則會呼叫預設拷貝建構函式。執行結果 呼叫一次建構函式,呼叫兩次析構函式,兩個物件的指標成員所指記憶體相同,name指標被分配一次記憶體,但是程式結束時該記憶體卻被釋放了兩次,會造成記憶...