参考解答
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. 的同源策略的概念是什么?
JavaScript 的同源策略的概念是什么?
类别的作用是什么?
类别的作用是什么?
Spring有哪些优点?
Spring有哪些优点?
应用上下文是如何实现的?
应用上下文是如何实现的?
Bean Factory和ApplicationContext有什么区别?
Bean Factory和ApplicationContext有什么区别?
