理解NSCopying--Effective筆記

weixin_33907511發表於2017-05-17

1,若想令自己所寫的物件具有拷貝功能,則需實現NSCopying協議
-(id)copyWithZone:(NSZone *)zone;

這裡的zone你可以不用管,歷史遺留問題,因為以前開發會據此把記憶體分成不同的“區”(zone),而物件會建立在某個區釐米。現在就不用啦,每個程式只有一個“預設區”

2,如果自定義物件分為可變版本與不可變版本,那麼就要同時實現NSCoping與NSMutableCopying協議

3,複製物件時需決定採用淺拷貝還是深拷貝,一般情況下應該儘量執行淺拷貝

4,如果你所寫的物件需要深拷貝,那麼可考慮新增一個專門執行深拷貝的方法

相關文章