关于协议:NSCopying 和NSMutableCopying
协议:
- @protocol NSCopying
-(id)copyWithZone:(nullable NSZone *)zone;
- @protocol NSMutableCopying
-(id)mutableCopyWithZone:(nullable NSZone *)zone;
如果想让自己实现的类支持copy操作:
- 遵守以上协议
- 实现协议方法
demo文件:自定义的demo写在FESCopyDemo.h里,使用写在- (void)customCopyingDemo;方法中
类的对象的copy:
- 类直接继承自NSObject,无需调用[super copyWithZone:zone]
- 父类实现了copy协议,子类也实现了copy协议,子类需要调用[super copyWithZone:zone]
- 父类没有实现copy协议,子类实现了copy协议,子类无需调用[super copyWithZone:zone]
- copyWithZone方法中要调用[[[self class] alloc] init]来分配内存
自定义的类实现深拷贝
- 没有专门定义深拷贝的协议,