Copy 其实是建立ioscopystrong区别了一个相同的对象ioscopystrong区别,而 retain 不是比如一个 NSString 对象ioscopystrong区别,地址为 0×1111,内容为@”ABC”Copy 到另外一个 NSString 之 后,地址为 0×2222,内容相同,新的对象 retain 为 1, 旧 有对象没有变化retain 到另外一个 NSString 之 后,地址相同建立一个指针,指针拷贝,内容当然相。
细心的同学会发现,第三种在赋值的时候用了 点语法 ,而不是直接赋值 除了将 _strongStr = originStr2 改为 selfstrongStr = originStr3 _copyyStr = originStr2改为 selfcopyyStr = originStr3 其余完全一样也就是说,ioscopystrong区别我们将_copyyStr = originStr2改为。
什么是assign,copy,retain之间的区别 assign 简单赋值,不更改索引计数Reference Counting copy 建立一个索引计数为1的对象,然后释放旧对象 retain释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 weak 和strong的区别weak和strong不同的是 当一个对象不再有。
1strong表示指向并拥有该对象其修饰的对象引用计数会增加1该对象只要引用计数不为0则不会被销毁当然强行将其设为nil可以销毁它strong表示对一块内存强引用,当strong类型的指针指向一块内存,这块内存的引用计数就加1,相反则减1当一块内存的引用计数为0时则销毁这块内存2weak表示指向但。
还没有评论,来说两句吧...