Cocos2d i SpriteBatchNode: nie można określić, która ramka sprite powoduje niepowodzenie asercji

Zapytałem już o coś podobnego, ale nie potrafię poprawnie zrozumieć, jak to debugować. To jestpytanie.

Dodałem program obsługi wyjątków (wychwytuje wszystkie wyjątki Objective-C) i to wynika z tego, co widzę:

Problem polega na metodzie setTexture i kończy się niepowodzeniem przy sprawdzaniu, czy nazwa tekstury, która ma być wyświetlana, jest taka sama jak w bieżącym węźle wsadowym sprite.

Dzieje się tak, gdy próbuje się zastąpić jedną scenę inną, ale nie zdarza się to cały czas. Ma to związek z nową sceną, ponieważ próbowałem „wyizolować” problem, wywołując zastępstwo z innej części gry i nadal sprawia to kłopoty.

W scenie gry mam kilka arkuszy sprite i węzłów wsadowych sprite, ale ponieważ nie zdołam wyizolować identyfikatora arkusza sprite, nie mogę zrozumieć, która ramka sprite daje mi problem, jak również nie rozumiem, dlaczego to zdarza się tylko czasami.

Chciałbym:

rozumiem, która nazwa ramki ikonki daje mi AssertionFailurezrozumieć, do którego arkusza sprite należy

Powinno to pomóc mi zrozumieć, czy jest to problem nazewnictwa, czy ma to związek z czymś innym.

Mając nadzieję, że nie będę zbyt kulawy z tym pytaniem ..

EDYTUJ: Spróbowałem odpowiedzi, ale nie jestem w stanie odczytać informacji „nazwa_pliku”, oto co mówi debuger: „Podsumowanie niedostępne”:

W ten sposób tworzę właściwość nazwy pliku:

/** 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;
}

questionAnswers(2)

yourAnswerToTheQuestion