在Objective-C中,何时为属性声明原子性?

时间:2013-11-21 13:42:09

标签: ios objective-c multithreading properties atomic

在Objective-C中,在什么情况/用例中你是否在iOS / cocoa开发中为你的属性声明了原子性?请列出实际用例。

注意:我理解原子和非原子之间的区别,但很少有人在上下文中回答这个问题:“我在做这个时已经使用过原子属性而且绝对需要它”。关于原子/非原子的大多数答案都是理论上和肤浅的。

2 个答案:

答案 0 :(得分:3)

默认情况下,@ property会使您的属性成为原子。如果不需要,请指定非原子。当您有两个可能同时修改同一对象的对象时,原子性非常有用。

答案 1 :(得分:1)

以简单的方式:

如果存在两个线程可以同时获取/设置相同属性的风险,则需要使用atomicatomic关键字禁止在另一个线程获取属性时更改属性。

默认值atomicnonatomic慢。这就是您经常使用nonatomic

的原因