Задержанные дети - должны освободить? - PullRequest
0 голосов
/ 15 октября 2011

Допустим, я получил свой CCSprite для игрока, а затем еще один CCSprite для индикатора здоровья.

Health CCSprite - ребенок игрока CCSprite.

По некоторым причинам я решилсохранить планку здоровья, как

[healthBarSprite retain];

Мой вопрос: поскольку я сохранил планку здоровья, я должен запустить

[healthBarSprite release];

В какой-то момент, верно?

Вот что: панель здоровья сохраняется, а спрайт игрока - нет.Таким образом, единственное, что я отпускаю, это панель здоровья?

Если спрайт игрока был фактически сохранен, то после его освобождения бар здоровья также автоматически освобождается, или я должен сначала его отпуститьа потом плеер?

1 Ответ

1 голос
/ 15 октября 2011

Да, вы должны отправить релиз в панель здоровья.Если спрайт игрока освобождает панель здоровья, вам не о чем беспокоиться;если он выпускает его, цель состоит в том, чтобы уравновесить сохранение, которое он сделал внутреннеВсе, о чем вам нужно беспокоиться, это сбалансировать удерживаемые вызовы, которые сделали .

Для иллюстрации очень вероятно, что спрайт игрока сохраняет своих потомков по мере их добавления и освобождает их, когдаони удалены, но независимо от этого, это деталь реализации CCSprite.Он будет беспокоиться о балансировке, удерживая звонки, которые он сделал, и вы беспокоитесь о балансировке своих.

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