首页 > 代码库 > 浅拷贝和深拷贝
浅拷贝和深拷贝
浅拷贝和深拷贝
目录
- 对浅拷贝和深拷贝的理解
- 浅拷贝
- 深拷贝
- NSDictionary的深拷贝
对浅拷贝和深拷贝的理解
浅拷贝
不是深拷贝的拷贝都是浅拷贝
深拷贝
如果想使用copy则需要遵循NSCopying协议,如果是想使用mutableCopy则需要遵循NSMutableCopying协议
分别需要实现的方法
- (id)copyWithZone:(NSZone *)zone{ MyClass *myClass = [[self class] allocWithZone:zone] init]; 对新创建的对象进行copy/mutableCopy赋值; return myClass;}
- (id)mutableCopyWithZone:(NSZone *)zone{ MyClass *myClass = [[self class] allocWithZone:zone] init]; 对新创建的对象进行copy/mutableCopy赋值; return myClass;}
如果类里面又包含其他类对象,则需要对这些类对象的类实现NSCopying协议或者NSMutableCopying协议,如此类推
NSDictionary的深拷贝
浅拷贝和深拷贝
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。