美文网首页
对象复制

对象复制

作者: nalis风 | 来源:发表于2016-07-19 11:29 被阅读10次

 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指示符,实例变量实际得到的值总是不可变对象。

相关文章

  • Copy

    copy 复制 浅复制:指针的复制(地址的复制) 深复制:对象内容的复制 Foundion的基本对象复制 基本对象...

  • iOS面试题:浅复制和深复制的区别?

    浅层复制:只复制指向对象的指针,而不复制引用对象本身。深层复制:复制引用对象本身。意思就是说我有个 A 对象,复制...

  • iOS常见面试题

    1、浅复制和深复制的区别 浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。 意...

  • objective深浅拷贝

    浅复制和深复制的区别? 浅复制:只复制指向对象的指针,而不复制引用对象本身。 深复制:复制引用对象本身。 意思就是...

  • 复制引用和复制对象的区别

    复制引用和复制对象的区别 复制引用:是指将某个对象的地址复制,所以复制后的对象副本的地址和源对象相同,这样,当改变...

  • 原生JavaScript对象复制

    简单深度复制 对象合并或者称为浅复制(对象只是复制应用,原对象改变会影响新对象,新对象改变不会影响原来的对象) 高...

  • JS中的深浅复制

    什么是深浅复制? 深复制:把要复制的对象的所引用的全部对象都复制一遍。开辟新空间。 浅复制:仅仅复制对象的引用,而...

  • copy

    /** 一.系统非容器类对象1.对不可变对象复制:copy是指针复制、mutableCopy是对象复制2.可变对象...

  • 深入浅出深度复制与浅度复制(demo)

    深度复制:复制一个对象时并且复制了该对象的引用(引用的引用。。。)。 浅度复制:仅仅复制该对象的成员变量(基本类型...

  • JavaScript对象的深浅复制

    前言 从层次上来看,对象的复制可以简单地分为浅复制和深复制,顾名思义,浅复制是指只复制一层对象的属性,不会复制对象...

网友评论

      本文标题:对象复制

      本文链接:https://www.haomeiwen.com/subject/biumjttx.html