当您查看某些Objective-C代码时,您经常会看到将类属性定义为非原子的。为什么?当你不使用线程时,它是否会给你一些性能提升,还是有其他原因?
答案 0 :(得分:5)
nonatomic
访问者更快,因为他们不必锁定。这就是它的全部内容。来自documentation:
如果您未指定
nonatomic
,则在引用计数环境中,对象属性的合成get访问器使用锁并保留并自动释放返回的值 - 实现将是类似于以下内容:[_internal lock]; // lock using an object-level lock id result = [[value retain] autorelease]; [_internal unlock]; return result;
如果指定
nonatomic
,则对象属性的合成访问器只会直接返回该值。