2010-05-17 4 views
5

Должен ли я каким-то образом выпускать общий объект (на котором основан один синглтон), когда мое приложение завершается, если не используется сборщик мусора (среда iPhone)?Object-c singleton memory deallocation

ответ

12

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

Даже если стратегия изменится в 4.0, один маленький объект не будет иметь большого влияния; он все равно будет выпущен вместе с остальной частью приложения, когда он завершится.

+2

Я уверен, что я где-то читал, что когда приложение знает, что собирается закрыть, он даже не потрудился делать deallocs. Во всяком случае, нет необходимости выпускать одиночные игры, если вы не полагаетесь на dealloc, чтобы избавиться от какого-либо внешнего ресурса. Если это так, перепроектируйте свой класс, чтобы вы могли явно распоряжаться указанным внешним ресурсом. – JeremyP

+2

Если вам нужно выполнить какую-то очистку, когда приложение завершается, вы можете использовать одноэлементный объект для 'UIApplicationWillTerminateNotification' –