Контроллер в Appdelegate никогда не выпускается

У меня есть сильная ссылка в моем AppDelegate, и когда я открываю контроллер, он не выпускается.

 @property (nonatomic, strong) MenuViewController        *menuViewController;

Этот контроллер вообще не декомпилируется, потому что я nslog Dealloc и он не появляется. Есть ли способ обойти это, не помещая это свойство в другое место? Я предполагаю, что Appdelegate является одноэлементным, и все свойства остаются в силе на протяжении всего жизненного цикла приложения.


person William Single    schedule 26.01.2015    source источник
comment
Да, он не будет освобожден автоматически, но вы можете вручную установить для menuViewController значение nil.   -  person Lyndsey Scott    schedule 26.01.2015


Ответы (1)


Я не уверен, как вы используете эту ссылку, но вы можете сделать ее указателем weak:

@property (nonatomic, weak) MenuViewController *menuViewController;

Установите указатель после инициализации и представления файла menuViewController.

Если вам нужно сначала инициализировать menuViewController и сохранить ссылку для последующего использования, вам следует установить self.menuViewController = nil, когда он вам больше не нужен.

person Armin    schedule 26.01.2015