я должен выпустить IBOutlets в - (void) viewDidUnload? - PullRequest
0 голосов
/ 19 июля 2009

Они говорят:

// Освобождение любых сохраненных подпредставлений основной вид. // например self.myOutlet = ноль;

Я никогда раньше этого не видел. так что мне интересно, говорят ли они о розетках здесь?

Ответы [ 2 ]

2 голосов
/ 20 июля 2009

Аналогично тому, как все, что вы выделяете в init, должно быть нераспределено в dealloc.

Если вы выделяете память в viewDidLoad, вы должны освободить ее в viewDidUnload.

Проблема становится запутанной, когда вы добавляете в рисунок файлы пера. Если вы вручную загружаете nib-файл, вы должны вручную выгрузить его и установить для всех IBOutlets значение nil.

1 голос
/ 19 июля 2009

Вам не нужно, если есть причина, чтобы сохранить его, но если вам нужно получить доступ к точке сущности через точку выхода, если представление было сорвано, то да, вы должны освободить. В противном случае ваш контроллер представления будет утверждать сохранение против всех IBOutlets от вашего пера, даже если сам перо было выгружено, что предотвращает их отмену. Так как эти объекты могут иметь текстуры и тому подобное, а iPhone использует основной оперативной памяти для видео, которое может очень быстро добавить много потерянной памяти.

Кроме того, если viewDidLoad вызывается снова, то новый объект будет создан и назначен этому выходу при перезагрузке пера, поэтому, если вы используете его где-либо еще (задайте свойства в других объектах для объекта, на который указывает IBOutlet ) тогда ваше приложение может оказаться в несовместимом состоянии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...