iOS开发之copy

iOS中copy有两种copy和mutableCopy

1.copy
  对于不可变对象的copy采用的是浅复制,引用计数加1(其实这是编译器进行了优化,既然原来的对象不可变,复制之后的对象也不可变那么就没有必要在重新创建一个对象了);对于可变对象copy采用的是复制,引用计数不变(原来的对象是可变的,现在要产生一个不可变的当然得重新产生一个对象)
2.mutablecopy:
  无论是可变对象还是不可变对象采用的都是深复制,引用计数不变(如果从一个不可变对象产生一个可变的对象自然不用说两个对象绝对不一样肯定是深复制;如果从一个可变对象产生出另外一个可变对象,那么其中一个对象改变自然不希望另外一个对象也改变,当然是深复制)
3.可变对象
  当值发生改变,那么地址也随之发生改变;
4.不可变对象
  当值发生了改变,内容地址不发生变化;
5.引用计数
  用于计算一个对象有几个指针在引用(有几个指针变量指向同一个内存地址) 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容