Управление памятью iPhone: не нужно очищать и освобождать сохраненные объекты при выходе из приложения?

Верно ли следующее?

Когда приложение вот-вот завершится, нет необходимости очищать память, вызывая release для всех ваших сохраненных объектов, потому что iPhone OS освободит память, выделенную для вашего приложения при его запуске. Это быстрее и безопаснее, чем полагаться на то, что приложения будут правильно убирать за собой. Вы можете проверить это, поместив вызов NSLog (или точку останова отладчика) в метод dealloc делегата вашего приложения и увидев, что он никогда не вызывается.

Итак, убирать вещи, когда приложение вот-вот закрывается, бесполезно. Более того, у вас очень ограниченное время, прежде чем ОС уничтожит ваше приложение, поэтому не тратьте его на чистку. Сосредоточьтесь на сохранении игры и других важных вещей.

Источник (cocos2d-iphone.org)


person Elliot    schedule 15.10.2009    source источник
comment
Не имеет большого значения на iOS, но на Mac или ПК, если ваше приложение использовало кучу страниц памяти, которые были выгружены на диск, попытка очистки при выходе может означать копирование всего обратно с диска в память. , просто чтобы отметить, что он больше не нужен. Если вы просто позволите приложению завершить работу, ОС знает, что может безопасно просто выбросить все эти данные.   -  person benzado    schedule 12.09.2012


Ответы (1)


да. Цитата документация:

Важно: когда приложение завершает свою работу, объектам может не быть отправлено сообщение об освобождении, поскольку память процесса автоматически очищается при выходе - более эффективно просто позволить операционной системе очистить ресурсы, чем вызывать все методы управления памятью. Это влияет на то, как вы реализуете метод освобождения - см. «Управление ресурсами».

person Ken    schedule 15.10.2009