У меня есть вопрос о том, что я часто делаю. Перед созданием нового диспетчера представлений я проверяю переменную экземпляра, названную после диспетчера представлений, который я хочу каким-то образом представить.Проверьте, существует ли viewcontroller, если не alloc/init (iOS)
if (self.viewcontroller == nil) {
//alloc and init the viewcontroller, then set the reference to this.
}
//Else I use the instance variable reference without making a new object of it.
Я делаю это на объектах, таких как viewcontroller с одним веб-просмотром. URL-адрес, который может открыть веб-просмотр, будет отличаться, но это устанавливается в методе viewWillAppear.
Это плохая практика? Я также сохраняю «подробный» viewcontroller.
Заранее спасибо.
Использование ленивой инициализации (как показано в вашем примере) - отличная идея, но вызов '-retain' не нужен и утечка экземпляра контроллера представления. Не делай этого. – jlehr
Да, но я не уверен в сохранении. Почему это происходит, если у меня есть свойство, которое я освобождаю в dealloc в «родительском» контроллере view. – LuckyLuke
@jlehr, спасибо за обнаружение ошибки. Я исправил это. alloc, наряду с новым и копированием, дарует право собственности. – westsider