У меня есть сцена, основной слой и дочерний слой, основной слой содержит объект Player *, который является подклассом CCSprite, я хочу передать Player в дочерний слой следующим образом:
BattleLayer* b = [[BattleLayer alloc] initWithPlayer:_player];
[((CCScene*)self.parent) addChild:b];
-(id)initWithPlayer:(Player *)p
{
if((self=[super init]))
{
_player = p;
[self addChild:_player.spriteSheet];
}
return self;
}
Однако это выдает ошибку, когда я делаю [self addChild: _player.spriteSheet];
*** Assertion failure in -[BattleLayer addChild:z:tag:]
Я пытался удалить спрайт из основного слоя перед его передачей, но даже с очисткой: НЕТ, это дает ошибку
*** -[CCSpriteBatchNode tag]: message sent to deallocated instance 0x747a580
Что я здесь не так делаю? И как лучше всего этого достичь?