NSString 使用copy而不是strong

为什么NSString使用copy而不是strong, 很多网上都有说深复制浅复制,影子克隆人等说法,这里我讲一下我的理解,直接上代码

属性.png

代码.png

可以看到在一个copy修饰和一个strong修饰的string,在复制给了一个他们的子类(mutableString)之后, 当可变字符串mustr改变之后, 使用strong修饰的随之改变, 而copy修饰的并未发生改变.
也就是说, 使用strong,只是把指针指向了可变字符串mustr, 并且计数器+1 , 所以当可变字符串改变时,本身也随着改变. 而使用copy 则可以复制一个值存起来, 可以防止对象在自己不知道的情况下被改变.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 5,519评论 0 1
  • 当一家家速食快餐林立而起,我们的爱情也渐渐渐渐变成了快餐,来得快,走得快,吃一次滋味很好,多吃几次竟然也会有那么一...
    不会飛的猪阅读 2,563评论 0 1
  • 【永遇乐】寒衣节 十字街头,万层烟落,哀烬飞絮。故影匆匆,经年只有、此刻丝丝语。天宫若似、人间冷暖,今夜盛装歌舞。...
    雲末阅读 3,456评论 0 8
  • 读《精进》 【对待时间的建议】: 1、生活在当下; 2、严肃地对待时间 ; 3、留意自己拥有的空间并享受它; 4、...
    jiang丫丫丫头阅读 3,258评论 0 0
  • 抱歉,各位亲爱的小伙伴,这段时间可能会有些断更,原因有三: 1、这段时间要备战期末考试,时间有些紧张 2、一些焦虑...
    Seven柒公子阅读 2,790评论 0 0

友情链接更多精彩内容