美文网首页iOS开发
copy&mutable Copy

copy&mutable Copy

作者: _青春_无处安放 | 来源:发表于2016-01-02 17:11 被阅读174次

在OC中拷贝分为深拷贝和浅拷贝两种情况。目前存在两种说法,今天主要阐述的是本人认为比较易懂得说法。

不可变对象执行不可变拷贝(copy)就是浅拷贝

如果执行拷贝时 只要有可变的无论是可变对象还是可变拷贝(mutableCopy)就是深拷贝

只有源对象和副本对象都不可变才是浅拷贝,其它都是深拷贝!

copy 创建的是不可变副本(NSString , NSArray, NSDictionary)

mutableCopy 创建的是可变副本 (NSMutableString, NSMutableArray, NSMutableDictionary)

shallow copy 浅拷贝(指针拷贝):相当于做了一次retain操作 引用计数器加1 没有产生新的对象  源对象和副本对象是同一个对象!

deep copy 深拷贝(内容拷贝):源对象和副本对象是两个不同的对象,源对象的计数器不变,副本对象计数器加1(产生了一个新的对象)

相关文章

  • copy&mutable Copy

    在OC中拷贝分为深拷贝和浅拷贝两种情况。目前存在两种说法,今天主要阐述的是本人认为比较易懂得说法。 不可变对象执行...

  • copy & mutable copy

  • (六) [OC高效系列]弄清楚属性

    1.copy mutable copy NSString与NSMutableString 打印如下 NSValue...

  • copy和mutable copy

    最近上班没事,就学会习,继续记录下最近学到的东西,与君共勉,大神勿喷。首先我们测试一下这两行代码: 测试一:源对象...

  • copy&MutableCopy

    面试中很喜欢 问copy和MutableCopy,在这里总结下!! 首先理解 copy 的含义,copy的初衷是,...

  • 静态分析错误解析

    1.Property of mutable type 'NSMutableArray' has 'copy' at...

  • iOS 静态分析Analyze

    1.Property of mutable type 'NSMutableArray' has 'copy' at...

  • copy和mutable-copy

    首先我们测试一下这两行代码: 测试一:源对象为可变字符串 测试二:源对象为不可变字符串 总结:字符串的拷贝,只要拷...

  • iOS copy关键字

    对NSMutableDictionary设置copy属性会导致mutable失效 [__NSDictionaryI...

  • Objective-C NS对象 copy 方法总结

    1.copy 返回的是不可变对象(immutableObject),即便原消息接收者是mutable对象,copy...

网友评论

    本文标题:copy&mutable Copy

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