Objective c 为什么我要在属性中使用非原子?

Objective c 为什么我要在属性中使用非原子?,objective-c,Objective C,可能重复: 默认情况下,Objective-C中的所有属性都是原子属性。如果我需要非原子的,我必须声明它。但我想知道为什么我要用非原子的?即使我的应用程序不是多线程的,atomic似乎也是这样做的。非原子的优点是什么 一个简单的答案是性能。如果将属性声明为原子属性,则合成的访问器将使用锁来确保完全检索和设置值。如果您不需要此功能,例如,您的应用程序是单线程的,那么这些锁将导致性能损失,而不会带来任何好处。@KennyTM:这不是重复您的链接问题。这是问原子/非原子是什么意思,这与问您是否应该使

可能重复:


默认情况下,Objective-C中的所有属性都是原子属性。如果我需要非原子的,我必须声明它。但我想知道为什么我要用非原子的?即使我的应用程序不是多线程的,atomic似乎也是这样做的。非原子的优点是什么

一个简单的答案是性能。如果将属性声明为原子属性,则合成的访问器将使用锁来确保完全检索和设置值。如果您不需要此功能,例如,您的应用程序是单线程的,那么这些锁将导致性能损失,而不会带来任何好处。

@KennyTM:这不是重复您的链接问题。这是问原子/非原子是什么意思,这与问您是否应该使用非原子不同。因此,将属性设置为非原子而不进行分析将被视为过早优化。我也很感兴趣的是,使用此属性是否真的会对普通应用程序的性能产生重大影响,没有非原子,它只是更可读,一个未使用的关键字免费。。。