strong,weak,retain,assign,copy nomatic 等的区别

编程入门 行业动态 更新时间:2024-10-09 08:33:25

strong,weak,retain,assign,copy nomatic 等的<a href=https://www.elefans.com/category/jswz/34/1769972.html style=区别"/>

strong,weak,retain,assign,copy nomatic 等的区别

assign: 简单赋值,不更改索引计数(Reference Counting)对基础数据类

copy: 建立一个索引计数为1的对象,然后释放旧对象。对NSString

retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 ,对其他NSObject和其子类

weak和strong的区别:

weak和strong不同的是 当一个对象不再有strong类型的指针指向它的时候 它会被释放 ,即使还有weak型指针指向它。一旦最后一个strong型指针离去 ,这个对象将被释放,所有剩余的weak型指针都将被清除。

copy与retain的区别:

copy其实是建立了一个相同的对象,而retain不是;

copy是内容拷贝,retain是指针拷贝;

copy是内容的拷贝 ,对于像NSString,的确是这样,如果拷贝的是NSArray这时只是copy了指向array中相对应元素的指针.这便是所谓的"浅复制"。

__block和__weak修饰符的区别

__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。

__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。

__block对象可以在block中被重新赋值,__weak不可以。



文/cjlcooper(简书作者)
原文链接:
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

更多推荐

strong,weak,retain,assign,copy nomatic 等的区别

本文发布于:2024-02-28 07:25:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768903.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:区别   retain   weak   strong   nomatic

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!