iOS 的深複製與淺複製

對象拷貝有兩種方式:淺複製和深複製。顧名思義,淺複製,並不拷貝對象自己,僅僅是拷貝指向對象的指針;深複製是直接拷貝整個對象內存到另外一塊內存中。指針

1 非集合類對象的copy與mutableCopy

在非集合類對象中:對immutable對象進行copy操做,是指針複製,mutableCopy操做時內容複製;對mutable對象進行copy和mutableCopy都是內容複製。對象

[immutableObject copy] // 淺複製內存

[immutableObject mutableCopy] //深複製table

[mutableObject copy] //深複製class

[mutableObject mutableCopy] //深複製im

2 集合類對象的copy與mutableCopy

在集合類對象中,對immutable對象進行copy,是指針複製,mutableCopy是內容複製;對mutable對象進行copy和mutableCopy都是內容複製。可是:集合對象的內容複製僅限於對象自己,對象元素仍然是指針複製。:tab

[immutableObject copy] // 淺複製集合

[immutableObject mutableCopy] //單層深複製di

[mutableObject copy] //單層深複製copy

[mutableObject mutableCopy] //單層深複製

相關文章
相關標籤/搜索