Jak*_*édl 1 cocoa properties objective-c atomicity
当您查看一些Objective-C代码时,您经常会看到定义为非原子的类属性.为什么?当你不使用线程时,它是否会给你一些性能提升,还是有其他原因?
nonatomic访问器更快,因为它们不必锁定.这就是它的全部内容.从文档:
如果未指定
nonatomic,则在引用计数环境中,对象属性的合成get访问器使用锁并保留并自动释放返回的值 - 实现将类似于以下内容:Run Code Online (Sandbox Code Playgroud)[_internal lock]; // lock using an object-level lock id result = [[value retain] autorelease]; [_internal unlock]; return result;如果指定
nonatomic,则对象属性的合成访问器只是直接返回值.