Иногда это может быть решающим, как я только что узнал. Я использую камеру в своей игре, которая держит указатель на общую цель. Если вы вернетесь в главное меню с уровня, то он удалит уровень из памяти, но сохранит слои камеры и игры.
-(void) dealloc {
[target release];
target = nil;
[super dealloc];
}
Поскольку камера будет существовать дольше, чем цель, лучше установить для цели значение nil, в противном случае, когда уровень снова загрузится и вы установите новую цель:
-(void) setTarget:(CCNode *)aTarget {
[target release];
target = [aTarget retain];
[self update:0];
}
В этом выпуске произойдет сбой, если целью является мусор, а не ноль. Отправка сообщения на ноль - это нормально, но не в произвольную ненужную память. Это дает мне EXC_BAD_ACCESS
.