理解NSCopying--Effective笔记
2017-05-17 本文已影响5人
夜者无念
1,若想令自己所写的对象具有拷贝功能,则需实现NSCopying协议
-(id)copyWithZone:(NSZone *)zone;
这里的zone你可以不用管,历史遗留问题,因为以前开发会据此把内存分成不同的“区”(zone),而对象会创建在某个区厘米。现在就不用啦,每个程序只有一个“默认区”
2,如果自定义对象分为可变版本与不可变版本,那么就要同时实现NSCoping与NSMutableCopying协议
3,复制对象时需决定采用浅拷贝还是深拷贝,一般情况下应该尽量执行浅拷贝
4,如果你所写的对象需要深拷贝,那么可考虑新增一个专门执行深拷贝的方法