Нужно ли мне "освобождать" мои объекты пользовательского интерфейса, которые я объявил как IBOutlets с атрибутами свойства "retain" и "nonatomic"? - PullRequest
0 голосов
/ 27 июля 2010

Нужно ли мне "освобождать" мои объекты пользовательского интерфейса, которые я объявил как IBOutlets с атрибутами свойства "retain" и "nonatomic"?Я спрашиваю, потому что у меня есть переменная UI, объявленная как ...

@interface MyViewController : UIViewController 
{
IBOutlet UILabel *lblStatus;
}

@property (retain, nonatomic) IBOutlet UILabel *lblStatus;

@end

, и мой dealloc вроде так ...

- (void)dealloc 
{
  //[lblStatus release];
  [super dealloc];
}

и с комментарием lblStatus UIПохоже, инструменты не обнаруживают утечек, когда я выскакиваю из стека навигации.

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 27 июля 2010

Поскольку они сохранены, да, вы несете ответственность за их освобождение.Обычно с контроллерами представления это должно происходить в -viewDidUnload, например так:

- (void)viewDidUnload
{
    self.lblStatus = nil;
    [super viewDidUnload];
}

(Установка значения свойства с помощью синтезированного метода доступа retain освободит старое значение перед установкой переменной экземплярана новое значение.)

...