ios oc 深淺拷貝的區別

2021-06-20 02:00:03 字數 360 閱讀 7713

深淺拷貝前提是:是實現nscopying或者nsmutablecopying協議。

淺拷貝只是複製物件本身,物件的屬性和包含的物件不做複製。

深拷貝則對物件本身複製,同是對物件的屬性也進行複製。

深淺拷貝的本質區別是物件或者物件屬性的記憶體位址是否一樣,一樣則為淺拷貝,不一樣則為深拷貝。

foundation框架支援複製的類,預設是淺拷貝。其中對foundation中不可變的物件進行copy時作用相當於retain。

而如果是mutablecopy時,無論物件是否可變,副本是可變的,並且實現了真正意義上的copy。如果對可變物件進行copy,

副本物件是不可變的,同樣是真正意義上的copy。

詳細參考:

C 什麼是深淺拷貝,深淺拷貝的區別?

淺拷貝 class string string const string s str s.str string operator const string s 返回引用是為了連續的賦值 return this string 防止野指標的出現 str null char str get void st...

is 和 的區別 深 淺拷貝

python中的物件包含三要素 id type value。1.id 在記憶體中儲存的位置,用來唯一標識乙個物件 id 變數名 檢視id 2.type 標識物件的型別 type 變數名 檢視資料型別 3.value is判斷的是a物件是否就是b物件,是通過type,value,id三者同時來判斷的。...

python 賦值 深淺拷貝的區別

在python中,物件賦值實際上是物件的引用。當建立乙個物件,然後把它賦給另乙個變數的時候,python並沒有拷貝這個物件,而只是拷貝了這個物件的引用 一般有三種方法,alist 1,2,3,a b 1 直接賦值,預設淺拷貝傳遞物件的引用而已,原始列表改變,被賦值的b也會做相同的改變 2 copy淺...