Для переменной переменной или нет ... проблемы с dealloc - PullRequest
0 голосов
/ 09 февраля 2012

Таким образом, в моем проекте ARC, когда я назначаю свой ViewController, используя переменную экземпляра, создается впечатление, что dealloc никогда не вызывается при отключении или отключении контроллера.

В моем заголовке:

ComposerView *composeView;

...

@property (nonatomic, retain) ComposerView *composeView;

...

@synthesize composeView;

, затем в моем коде:

if (composeView == nil)
      composeView = [[ComposeView alloc] init];

[self.navigationController pushViewController: composeView];

Теперь внутри composeView я установил для всех делегатов значениеноль, но dealloc никогда не вызывается, и впоследствии viewDidLoad больше не вызывается при перезагрузке контроллера представления.

Если я не использую переменные экземпляра и просто создаю его напрямую, все в порядке.Любая помощь приветствуется, спасибо!

1 Ответ

0 голосов
/ 09 февраля 2012

Если вы используете ARC, вы должны объявить свои свойства как сильные / слабые вместо сохранения / назначения.

Возможно, вы хотите

@property (nonatomic, weak) ComposerView *composeView;

Проверьте эту ссылку для описаниясильных / слабых: https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html#//apple_ref/doc/uid/TP40011226

...