Какой метод следует использовать для освобождения объекта? - PullRequest
3 голосов
/ 25 февраля 2010

Я обнаружил, что на iphone есть viewDidUnload и dealloc. Я хочу выпустить объект. Какой метод я должен использовать, чтобы освободить объект? Чем они отличаются?

Ответы [ 3 ]

7 голосов
/ 25 февраля 2010

Отправить release или autorelease, чтобы освободить объект. Вы не должны отправлять dealloc; среда выполнения Obj-C сделает это.

Если вы спрашиваете , где , вы должны освободить принадлежащий объект, прочитайте: " Когда я должен освобождать объекты в - (void) viewDidUnload, а не в -dealloc? "

0 голосов
/ 25 февраля 2010

Разница в том, что viewDidUnload используется для освобождения "запасных" объектов в ситуациях нехватки памяти, в то время как dealloc используется для освобождения всех объектов, когда представление больше не требуется.

Это означает, что у вас почти всегда будет метод dealloc, но метод viewDidUnload будет использоваться только там, где это имеет смысл.

0 голосов
/ 25 февраля 2010

Не звоните dealloc. Используйте модель сохранения релиза для управления памятью, и Objective-C позаботится о том, чтобы освободить память для вас.

См. эту ссылку для хорошего объяснения того, как работает удерживающая версия.

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