Without a property declaration (that is, you have manually declared the setter and getter methods), you'd typically implement them like this:
@interface MyClass : NSObject
{
NSString *name;
}
- (NSString *) name;
- (void) setName:(NSString *) name;
@end
@implementation MyClass
- (void) dealloc
{
[name release];
[super dealloc];
}
- (NSString *) name
{
return name;
}
- (void) setName:(NSString *) aName
{
if (aName != name)
{
[name release];
name = [aName retain];
}
}
@end
Atomic setters could look something like this:
- (void) setName:(NSString *) aName
{
@synchronized(self)
{
if (aName != name)
{
[name release];
name = [aName retain];
}
}
}