1樓:匿名使用者
淺拷貝:淺拷貝是對object物件的指標拷貝,讓指標指向同一塊記憶體位址,「物件永遠只有乙個",淺拷貝使物件的引用計數器+1。**如下:
可以看出不可變字串的指標指向了同一位址,並沒有重新開闢記憶體。
如圖中**,宣告乙個可變陣列,為wxdobject類新增乙個用copy修飾的屬性,在類的實現後將指標指向可變陣列,列印兩者的位址發現位址發生了變化。所以用copy修飾可變物件,將會進行深拷貝。
總純雹悶結:
copy:對不可變物件等同與retain,指標拷貝,引用計數器肆汪+1。對可變物件執行深拷貝,等同mutablecopy,內容拷貝。
mutablecopy:深拷貝是重新創乙個新物件,但是卻保留原來物件的值。內容拷貝。
2樓:匿名使用者
copy: 用於希望保持乙份傳入銀譁值的拷貝,而不是值自身的情況,即把原來的物件完整的賦值到另外一地方,重新載入一記憶體區,乙個地方變了不影響另乙個地方的物件。
assign: 簡單的直接賦值,相當於說兩個物件指向同個記憶體區,乙個地方的變了,其他的也跟著改變。
retain:釋放舊的物件鄭辯,將舊物件的值賦予輸入物件,再提高輸入物件的索引計數 為1
那上面的是什麼意思呢?
copy 其實是建立了乙個相同的物件,而 retain 不是:
比如乙個 nsstring 物件,位址為 0×1111,內容為@」abc」
copy 到另外乙個 nsstring 之 後,位址為 0×2222,內容相同,新的物件 retain 為 1, 舊 有物件沒有變化。
retain 到另外乙個 nsstring 之 後,位址相同(建立乙個指標,指標拷貝),內容當然相 同,這個物件的 retain 值+1
assign 位址還是0x1111,內容也還是「abc」。
也就是說,retain 是指標拷貝,copy 是內容拷貝。
strong,weak 用來修飾屬性。
strong 用來修飾強引喊搏缺用的屬性;
property (strong) someclass * aobject;
對應原來的。
property (retain) someclass * aobject; 和 @property (copy) someclass * aobject;
weak 用來修飾弱引用的屬性;
property (weak) someclass * aobject;
對應原來的。
property (assign) someclass * aobject;
ios中retain和copy的區別以及深拷貝和淺拷貝
3樓:遺忘國崎
回覆一下,裡面說的是錯的,copy和mutablecopy都是深拷貝,而且copy也是可以修改的,你可以試試copy乙個字串在再修改,結果是可以改的,也不影響原來的字串,原來的字串被釋放後copy過來的字串還在,所以樓主真的是誤人子弟啊!!!
深拜樓中月淺畫鏡中眉是首什麼詩,深拜樓中月淺畫鏡中眉是首什麼詩
繁燈奪霽華,戲鼓侵明發。物色舊時同,情味中年別。淺畫鏡中眉,深拜樓西月。人散市聲收,漸入愁時節。生查子 元夕戲陳敬叟 劉克莊繁燈奪霽華,戲鼓侵明發。物色舊時同,情味中年別。淺畫鏡中眉,深拜樓西月。人散市聲收,漸入愁時節。註釋 陳敬叟 字以莊,號月溪,建安人。霽 j 華 目光皎潔。明發 天剛朦朦亮。賞...
在建築中什麼叫做深基船什麼叫做淺基礎
在建築中,從定量的角度來講大 0.500m 5m 不含5m 淺基礎,5深基礎。從定性的角度來講 5m的也可能是深基坑工程。淺基礎與深基沒有術語 即無法準確定量 基礎埋置深度,與建築物用途 作用在地基上的荷載大小和性質 工程地質和水文條件 相鄰建作物的基礎埋深 地基土凍脹和融陷的影響及開挖安全有關。危...
如何做到九淺一深
充分愛撫女子身體的各主要部位後,再慢慢進行 九淺一深 或 八淺二深 的交 合方式,對方就得到十分快感,顯現出非常滿足的樣子。雖然西醫根據解剖生理學原理,獲悉性 交前必須花相當的時間來愛撫女子 帶,可是遠不如中醫鍼灸原理,由機能生理學的方式來得有效。因為按前述方式專心一意地愛撫女子經絡,則對方的感應是...