在Objective-C中,在什么情况/用例中你是否在iOS / cocoa开发中为你的属性声明了原子性?请列出实际用例。
注意:我理解原子和非原子之间的区别,但很少有人在上下文中回答这个问题:“我在做这个时已经使用过原子属性而且绝对需要它”。关于原子/非原子的大多数答案都是理论上和肤浅的。
答案 0 :(得分:3)
默认情况下,@ property会使您的属性成为原子。如果不需要,请指定非原子。当您有两个可能同时修改同一对象的对象时,原子性非常有用。
答案 1 :(得分:1)
以简单的方式:
如果存在两个线程可以同时获取/设置相同属性的风险,则需要使用atomic
。 atomic
关键字禁止在另一个线程获取属性时更改属性。
默认值atomic
比nonatomic
慢。这就是您经常使用nonatomic