美文网首页
readwrite,assign,retain,copy,non

readwrite,assign,retain,copy,non

作者: Jabne | 来源:发表于2016-03-10 22:10 被阅读46次

    当用copy时,set方法会先release旧值,再copy一个新的对象,reference count 为1(减少了对上下文的依赖);当用assign,直接赋值,无retain操作。当用retain,release旧值,retain新值;
    copy与retain的区别
    一个NSString 对象,地址为0×1111 ,内容为@”STR”
    Copy 到另外一个NSString 之后,地址为0×2222 ,内容相同,新的对象retain为1 ,旧有对象没有变化
    retain 到另外一个NSString 之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1
    也就是说,retain 是指针拷贝,copy 是内容拷贝。
    strong与weak的区别
    strong类似于retain,会将对象的引用计数器+1,分配内存地址。
    weak类似于指针,只是单纯的指向某个地址,但是本身并未分配内存地址。当指向的地址被销毁时,该指针会自动nil。

    相关文章

      网友评论

          本文标题:readwrite,assign,retain,copy,non

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