美文网首页
NSString为什么用copy

NSString为什么用copy

作者: 烧烧的猫 | 来源:发表于2017-09-04 17:13 被阅读0次

    最近在准备面试!这个问题被问的很多!自己花了一点时间,把demo敲了一遍,顺便看看问题的到底在那。话不多上代码和图片

    开发

    这边我们用NSMutableString分别给用copy 和 strong 修饰的NSString进行赋值,答应结果告诉我们用strong修饰的string 的内存地址和NSMutableString的内存地址一样,而用copy是开辟的一个新的空间

    当我们再次修改了NSMutableString的时候我们strong修饰的值发生了变化!违背NSString的不可性。

    如果你想让strong修饰的string不会发变化的话可以参考下面的做法

    strong修饰string值变

    这样通过Xcode跑出来的结果我们对NSMutableString进行一次copy操作!我们可以发现无论是用copy还是用strong 的值都没有发生变化。而是都指向一块新的空间。

    我仔细思考后

    1.这里面还有深拷贝还有浅拷贝,上面结果告诉我们copy是深拷贝,在内存中开辟了空间

    2.系统对内存的分配情况。

    相关文章

      网友评论

          本文标题:NSString为什么用copy

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