美文网首页知识点总结
iOS 集合类和非集合类的copy和mutableCopy

iOS 集合类和非集合类的copy和mutableCopy

作者: 飞不越疯人院 | 来源:发表于2019-04-02 17:51 被阅读6次

    集合类:(以数组为例)

    NSMutableArray NSArray
    copy:新地址 copy:同样地址
    mutablecopy:新地址 mutablecopy:新地址
    不论哪种数组内部的元素地址都是一份 不论哪种数组内部的元素地址都是一份

    非集合类:(字符串为例)

    NSMutableString NSString
    copy:新对象 copy:同样地址
    mutablecopy:新对象 mutablecopy:新对象

    能实现真正意义上的深复制目前所知道的只能是归档后再解档(非自定义模型); [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:arr]]


    源对象类型 拷贝方式 目标对象类型 拷贝类型(深/浅)
    mutable对象 copy 不可变 深拷贝
    mutable对象 mutablecopy 可变 深拷贝
    immutable对象 copy 不可变 浅拷贝
    immutable对象 mutablecopy 可变 深拷贝

    可变对象的copy和mutablecopy都是深拷贝
    不可变对象的copy是浅拷贝, mutablecopy是深拷贝;
    copy方法返回的都是不可变对象;

    相关文章

      网友评论

        本文标题:iOS 集合类和非集合类的copy和mutableCopy

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