Должен ли я реализовать dealloc в моем делегате приложения? - PullRequest
0 голосов
/ 27 февраля 2011

Должен ли я реализовать dealloc в моем делегате приложения и выпустить там свои ivars? Насколько я понимаю, когда приложение завершается, вся связанная с ним память освобождается автоматически. Так что, в принципе, нет необходимости самостоятельно выпускать ивары при завершении.

Я уже нашел этот вопрос здесь: Имеет ли смысл выпускать ivars в dealloc appdelegate?

В одном из ответов говорится, что объекты могут иметь код для очистки в dealloc, поэтому вы можете захотеть выпустить ivars самостоятельно при завершении. Но когда я помещаю NSLog в деселок моего делегата приложения, он никогда не вызывается. Я предполагаю, что в этом нет никакой необходимости, так что мне даже не нужно его реализовывать, я прав?

Ответы [ 2 ]

4 голосов
/ 27 февраля 2011

Это может быть необходимо в будущих выпусках iOS.Ради прямой совместимости, и, поскольку Apple, кажется, рекомендует это, я бы выпустил эти ivars.

1 голос
/ 27 февраля 2011

Вы правы, вам не нужно выпускать свои ivars в dealloc (хотя в примерах шаблонов, поставляемых с SDK, есть -dealloc).ОС восстановит любую память, связанную с вашим приложением.Если что-нибудь, это только добавит небольшое количество накладных расходов.Кроме того, насколько я знаю, среда не дает никаких гарантий, что -dealloc в вашем делегате приложения когда-либо будет вызван, так что он может даже никогда не выполнить.

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