1
当您查看一些Objective-C代码时,您经常会将类属性定义为非原子。为什么?当你不使用线程时,它是否会提升性能?还是有其他原因?可可非原子性质
当您查看一些Objective-C代码时,您经常会将类属性定义为非原子。为什么?当你不使用线程时,它是否会提升性能?还是有其他原因?可可非原子性质
nonatomic
访问者速度更快,因为他们不必锁定。这就是关于它的一切。从documentation:
如果不指定
nonatomic
,然后在引用计数的环境,对象属性合成get访问使用了锁,并保留和自动释放返回值的实施将类似于以下内容:如果指定nonatomic
[_internal lock]; // lock using an object-level lock id result = [[value retain] autorelease]; [_internal unlock]; return result;
,那么对于一个对象的属性合成访问干脆直接返回值。
感谢这么快速的回答。我之前知道非原子属性如何工作,我只是不知道使用它们的好处:-) – 2010-06-02 18:51:42
[Objective-C properties:atomic vs nonatomic]可能的重复(http://stackoverflow.com/questions/588866/objective-c-properties-atomic-vs-nonatomic) – bbum 2010-06-02 22:37:58