iOS-深浅拷贝

作者: 磊CC | 来源:发表于2016-04-16 14:43 被阅读59次

深拷贝:复制对象并且复制对象里面的内容完全拷贝

浅拷贝:指针拷贝只拷贝对象本身不拷贝里面内容

看是不是深拷贝主要看是不是拷贝了对象里面的内容

copy、mutableCopy系统自带的这两个拷贝都属于浅拷贝

实现深拷贝的方式:

1、可以自定义拷贝(要看具体拷贝的内容)

并不是所有对象都可以拷贝只有遵守了拷贝协议的对象才可以

拷贝比如:SString

NSArray NSDictionary

(1)导入协议

(2)实现协议方法、自定义拷贝

①、copyWithZone:

②、mutableCopyWithZone:

2、系统提供给了深拷贝的方法copyItems如果是YES就是深拷贝

(1)数组的:-

(instancetype)initWithArray:(NSArray *)array

copyItems:(BOOL)flag

(2)字典的:-

(instancetype)initWithDictionary:(NSDictionary

ObjectType> *)otherDictionary copyItems:(BOOL)flag

不可变对象copy ->不可变对象

可变对象copy ->不可变对象

不可变对象mutableCopy ->可变对象必须用对应的类型去接收

可变对象mutableCopy ->可变对象必须用对应的类型去接收

mutableCopy?深浅拷贝

如果:

指针拷贝->浅拷贝

对象拷贝->深拷贝

那么:mutableCopy

->深拷贝

在使用mutableCopy拷贝后两个对象的内存地址是不一样的

相关文章

  • iOS-深浅拷贝

    深拷贝:复制对象并且复制对象里面的内容完全拷贝浅拷贝:指针拷贝只拷贝对象本身不拷贝里面内容看是不是深拷贝主要看是不...

  • 2018-08-29

    深浅拷贝 1.根据拷贝内容的不同,分为深浅拷贝 深拷贝:内容...

  • js的深浅拷贝

    js的深浅拷贝可以分为数组的深浅拷贝和对象的深浅拷贝 一、数组的深浅拷贝如果只是简单的将数组中的元素付给另外一个数...

  • Python—浅拷贝与深拷贝

    浅拷贝 深拷贝 深浅拷贝的作用

  • 深浅拷贝

    先来了解一下这些:在js中变量类型基本分为两种:基本数据类型和引用数据类型;基本类型:Underfied Null...

  • 深浅拷贝

    浅拷贝是对一个对象的顶层拷贝。通俗的理解就是:拷贝了引用,并没有拷贝内容。 深拷贝是对于一个对象所有层次的拷贝(递...

  • 深浅拷贝

    深浅拷贝.copy 浅拷贝 这是一个方法,浅拷贝修改可变类型是会将原数据也一块修改 Copy.deepcopy 深...

  • 深浅拷贝

    1:is 和 ==的区别 is 是比较两个引用是否指向了同一个对象(地址引用比较)。== 是比较两个对象是否相等。...

  • 深浅拷贝

    函数的传递,与matlab不同,具有以下特点: 1.直接赋值会带来不同ID,例如,a=2,b=2 2.传递引用赋值...

  • 深浅拷贝

    最近一直被问到深浅拷贝的问题。自己也确实不太清楚怎么回事,现在来研究一下。 什么是深浅拷贝 浅拷贝:指针拷贝,不会...

网友评论

    本文标题:iOS-深浅拷贝

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