Сколько раз я освобождаю выделенный или сохраненный объект?

Я делаю игру для iPhone. Я хочу освободить все объекты, которые были выделены или сохранены. вdealloc Функция Я освобождаю все такие объекты, но потом я понял, что иногда я в конечном итоге освобождаю объекты, когда они еще не были выделены. Поэтому я решил, что нужно проверить,retainCount больше нуля или нет, прежде чем я его отпущу.

Мой вопрос:

Должен ли я просто проверить,retainCount больше нуля, а затем отпустите его?

if([bg retainCount]!=0)
{
  [bg release];
}

или же

Должен ли я выпустить его столько раз, сколько егоretainCount

while([bg retainCount]!=0)
{
  [bg release];
}

Спасибо за вашу помощь!

Ответы на вопрос(2)

Ваш ответ на вопрос