Я синтезировал и объявил это свойство в своем классе 'ClassA'
@interface ClassA
@property (nonatomic, retain) NameFieldCell* nameCell;
@end
Я знаю, что правило гласит, что свойство nameCell должно быть освобождено в моем методе dealloc, когда оно объявлено с помощью retain | copy | ...
Однако, ClassA 'создается лениво, и иногда свойство nameCell даже не используется, что означает, что я не использую его метод установки, не обращаюсь к нему и не сохраняю его явно.
Должен ли я по-прежнему вызывать [nameCell release] в моем методе dealloc? Мне трудно понять, что я должен выпускать что-то, что даже не инициализировано. И поскольку он не инициализирован, счетчик ссылок равен 0 и нет смысла его освобождать? Или nameCell каким-то образом сохраняется автоматически при создании экземпляра ClassA, даже если я им не пользуюсь?