Предположим, вы хотите сохранить передаваемую строку в точности так, как это было при передаче:
@implementation AddressCard;
-(NSString *) name
{
return name;
}
-(void) setName: (NSString *) theName
{
[name release];
name = [[NSString alloc] initWthString: theName];
}
//rest of class implementation code snipped
@end
Если вы используете только
-(void) setName: (NSString *) theName
{
[name release];
name = [theName retain];
}
, тогдаNSMutableString
, которое передается как имя, может быть изменено позже, без явной установки свойства name в AddressCard.Часто это не то, что нужно.