Cocos2d и SpriteBatchNode: невозможно определить, какой фрейм спрайта вызывает сбой подтверждения

Я уже спрашивал что-то подобное, но я не могу понять, как правильно это отлаживать. Этовопрос.

Я добавил обработчик исключений (перехватывает все исключения Objective-C), и это результат того, что я вижу:

Проблема заключается в методе setTexture, и при проверке он не может проверить, совпадает ли имя текстуры, которое необходимо отобразить, с именем в текущем пакетном узле спрайта.

Это происходит при попытке заменить одну сцену другой, но не всегда. Это связано с новой сценой, так как я пытался «изолировать» проблему, вызывая замену из другой части игры, и это все еще доставляет проблемы.

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

Я бы хотел:

понять, какое имя фрейма спрайта дает мне AssertionFailureпонять, к какому спрайтовому листу он принадлежит

Это должно помочь мне понять, если это проблема с именами или это связано с чем-то другим.

Надеюсь, что не быть слишком хромым с этим вопросом ..

РЕДАКТИРОВАТЬ: Я попытался ответить, но я не могу прочитать информацию 'fileName', вот что говорит отладчик "Сводка недоступна":

Вот как я создаю свойство filename:

/** TMP: Bug solving filename */
@property (copy) NSString *fileName;

-(id) initWithTexture:(CCTexture2D*)texture rectInPixels:(CGRect)rect rotated:(BOOL)rotated offset:(CGPoint)offset originalSize:(CGSize)originalSize
{
    if( (self=[super init]) )
    {
        self.fileName = [NSString stringWithFormat:@"GLUINT texture name: %i", texture.name];
        self.texture = texture;
        rectInPixels_ = rect;
        rect_ = CC_RECT_PIXELS_TO_POINTS( rect );
        offsetInPixels_ = offset;
        offset_ = CC_POINT_PIXELS_TO_POINTS( offsetInPixels_ );
        originalSizeInPixels_ = originalSize;
        originalSize_ = CC_SIZE_PIXELS_TO_POINTS( originalSizeInPixels_ );
        rotated_ = rotated;
    }
    return self;
}

-(id) initWithTextureFilename:(NSString *)filename rectInPixels:(CGRect)rect rotated:(BOOL)rotated offset:(CGPoint)offset originalSize:(CGSize)originalSize
{
    if( (self=[super init]) )
    {
        self.fileName = fileName; //TMP
        texture_ = nil;
        textureFilename_ = [filename copy];
        rectInPixels_ = rect;
        rect_ = CC_RECT_PIXELS_TO_POINTS( rect );
        offsetInPixels_ = offset;
        offset_ = CC_POINT_PIXELS_TO_POINTS( offsetInPixels_ );
        originalSizeInPixels_ = originalSize;
        originalSize_ = CC_SIZE_PIXELS_TO_POINTS( originalSizeInPixels_ );
        rotated_ = rotated;
    }
    return self;
}

Ответы на вопрос(2)

Ваш ответ на вопрос