美文网首页
iOS 关于copy跟mutableCopy

iOS 关于copy跟mutableCopy

作者: L千载难逢 | 来源:发表于2020-08-10 11:07 被阅读0次

    网上的资料已经一大堆,本文就简单的总结一下。
    首先,一个NSObject的对象想要使用这两个函数,那么必须实现NSCopying协议和NSMutableCopying协议。
    对于NSCopying,实现+ copyWithZone:方法。
    对于NSMutableCopying,实现+ mutableCopyWithZone:方法。
    经常用的NSString,NSArray,NSDictionary等已经实现。

    总结:
    如果对一不可变对象复制,copy是指针复制(浅拷贝)和mutableCopy就是对象复制(深拷贝)。
    如果是对可变对象复制,都是深拷贝,但是copy返回的对象是不可变的。

    网上解释浅复制就是复制了对象的指针,深复制就是复制对象的地址。也就是说浅复制出来的对象,修改完之后会影响原来的对象,深复制则不会。这里存在一个问题就是怎么测试的问题,因为浅复制出来的对象是不可变的,要怎么修改目前没找到办法,有大神知道的话求告知。
    附上大佬链接

    相关文章

      网友评论

          本文标题:iOS 关于copy跟mutableCopy

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