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

Я делаю игру для iPhone. Я хочу освободить все объекты, которые были выделены или сохранены. В функции dealloc я освобождаю все такие объекты, но затем я понял, что иногда я заканчиваю освобождение объектов, когда они еще не были выделены. Итак, я решил, что мне нужно проверить, больше ли его keepCount нуля или нет, прежде чем я его выпущу.

Мой вопрос:

Я просто проверяю, есть ли keepCount больше нуля, а затем отпустить его?

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

или

Следует ли мне выпускать его столько раз, сколько его keepCount

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

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

6
задан bbum 23 January 2016 в 08:22
поделиться