nonatomic :
@property (nonatomic, retain) id ivar;
- (id)ivar {
return ivar;
}
- (void)setIvar:(id)newValue {
if (ivar != newValue) {
[ivar release];
ivar = [newValue retain];
}
}
ivar != newValue. , ivar release, retain .
copy, , retain copy.
assign :
- (void)setIvar:(id)newValue {
ivar = newValue;
}
, atomic ( ), . , , Apple :
- (id)ivar {
@synchronized (self) {
return [[self->ivar retain] autorelease];
}
}
- (void)setIvar:(id)newValue {
@synchronized (self) {
if (newValue != self->ivar) {
[self->ivar release];
self->ivar = newValue;
[self->ivar retain];
}
}
}
@synchronized retain-autorelease . , ( ), , - , .