Инициализатор суперкласса -initWithRect: spriteManager: не не помещает объект в пул автоматического выпуска. Соглашение об именах таково, что любой метод -init… устанавливает объект, который вы несете ответственность за освобождение.
Xcode предоставляет полезные шаблоны завершения кода для методов init и dealloc. Просто нажмите control-comma и начните вводить «init» или «dealloc». (Вы также можете набрать init и нажать control-запятую.) Шаблон init:
- (id) init
{
self = [super init];
if (self != nil)
{
// Your initializations
}
return self;
}
Вы бы заменили self = [super init]
на строку, которую вы написали выше.
Шаблон Deloc - это
- (void) dealloc
{
// Your deallocations
[super dealloc];
}
[super dealloc]
вызывает -dealloc суперкласса, который позаботится об освобождении того, что он настроил в вашем вызове -initWithRect: spriteManager: (а также обо всем, что он наследует от своего суперкласса).