Привет, ребята, извините, что снова избил лошадь управления памятью.Я знаю, что этот вопрос задавался несколько раз на SO, но я чувствую, что всем темам по-прежнему не хватает двух частей информации.Позвольте мне высказать то, что я ДЕЙСТВИТЕЛЬНО знаю, чтобы сэкономить время всем.
1) Когда вы создаете IBOutlet, ваш контроллер представления автоматически сохраняет эту розетку.
1a) Когда вы не создаетерозетка, 'framework' (перо?) высвобождает ваши объекты (например, uilabels или uiviews) для вас.
2) Когда вы делаете self.myOutlet = nil, вы фактически освобождаете розетку (при условии, что выправильно синтезировали ваши свойства).Это потому, что сеттер освобождает розетку и присваивает ей ноль.
Чего я не знаю:
1) ОСНОВНОЙ вопрос: если вы делаете self.myOutlet = nil в viewDidUnLoad,Вам все еще нужно что-то делать в dealloc?Можете ли вы сделать предположение, что viewDidUnload всегда вызывается перед dealloc? (И, следовательно, ваши сохраненные представления освобождаются?)
2) Что произойдет, если вы не синтезируете свойство для этого выхода?Разве фреймворк не должен выпускать его автоматически? (Так как у вас нет свойства retain). Если вам нужно его освободить, как вы это делаете и где (в viewDidUnload или dealloc)?
Если что-тонеправильно, пожалуйста, укажите мне.Любые разъяснения были бы очень полезны.