定义属性时 什么情况使用copy assign和retain?

IT互联网 已帮助: 时间:2025-06-13 21:08:40

定义属性时,什么情况使用copy,assign和retain?

难度:⭐⭐⭐

题库:IT/互联网,其他

标签:属性,定义,情况

参考解答

用户头像

490***136

2025-06-13 21:08:40

assign用于简单数据类型,如NSInteger,double,bool,retain 和copy用户对象,copy用于当 a指向一个对象,b也想指向同样的对象的时候,如果用assign,a如果释放,再调用b会crash,如果用copy 的方式,a和b各自有自己的内存,就可以解决这个问题。retain 会使计数器加一,也可以解决assign的问题。另外:atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。加了atomic,setter函数会变成下面这样:

if (property != newValue) { [property release; property = [newValue retain;


上一篇 JavaScript. 的同源策略的概念是什么?

下一篇 static作用是什么?

相似问题