Reputation: 1805
When you look at some Objective-C code, you often see class properties defined as non-atomic. Why? Does it give you some performance boost when you're not working with threads, or is there some other reason?
Upvotes: 1
Views: 648
Reputation: 224904
nonatomic
accessors are faster because they don't have to lock. That's about all there is to it. From the documentation:
If you do not specify
nonatomic
, then in a reference counted environment a synthesized get accessor for an object property uses a lock and retains and autoreleases the returned value—the implementation will be similar to the following:[_internal lock]; // lock using an object-level lock id result = [[value retain] autorelease]; [_internal unlock]; return result;
If you specify
nonatomic
, then a synthesized accessor for an object property simply returns the value directly.
Upvotes: 5