对象复制

 copy与mutableCopy 方法

copy 方法用于复制对象的副本,返回对象不可修改的副本,即使该对象本身是可修改的

mutableCopy 复制对象的可变副本 mutableCopy方法总是返回该对象可修改副本,既是复制对象本身不能修改

NSCopying 与NSMutableCopy协议


-(id)copyWithZone:(NSZone *)zone{

FKPreson *p=[[[self class]allocWithZone:zone]init];

p.age=self.age;

p.address=self.address;

p.count=self.count;

p.name=self.name;//浅复制(shallow copy)因为NSStirng需定指针型变量,如此的复制方式,只是将所指向的字符串地址复制一份

//p.name=[self.name mutableCopy]; 深复制(deep copy)不带复制本身, 递归赋值所有的指针变量,直至没有共同的部分

return p;

}

定义合成getter/setter方法时并没有提供mutableCopy指示符,因此即使定义实例变量时使用了可变类型,但只要使用copy指示符,实例变量实际得到的值总是不可变对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容