Если вы обращаетесь к такому свойству
self.property=@"";
, вы фактически используете метод установки (который создается автоматически благодаря @synthesize).Таким образом, в этом случае старый объект освобождается, а новый назначается и сохраняется.
Если вы синтезировали свое свойство, используя
@synthesize property= _property;
, то если вы вызовете
_property=@"";
тогда вы просто назначаете новое значение свойству.Тогда ничего не высвобождается.
Итак, в вашем методе dealloc
есть несколько вариантов:
-(void)dealloc
{
self.property=@"";//old value released, new value is @""
self.property=nil;//old value released, new value is nil
[_property release]; //old value released
[super dealloc];
}