Удаление CCSprites, хранящихся в NSMutableArray, не работает правильно - PullRequest
1 голос
/ 09 июля 2011

Вот что я пробовал.

В моем методе инициализации я инициализировал массив:

deleteSprites = [[NSMutableArray alloc] initWithCapacity:500];

Вот как я добавил их в массив:

CCSprite *SpriteSave;
SpriteSave = [CCSprite spriteWithBatchNode:Batch rect:CGRectMake(0,0,6,6)];
[Batch addChild:SpriteSave];
[deleteSprites addObject:SpriteSave];

Вот как я пытаюсь удалить спрайты:

delCount = 0;
while (delCount < [deleteSprites count])
    CCSprite *delSprite = (CCSprite *) [deleteSprites objectAtIndex:delCount];
    [delSprite.parent removeChild:delSprite cleanup:YES];
    delCount++;
}
[deleteSprites removeAllObjects];

Это приводит к переворачиванию некоторых спрайтов, но они все равно появляются на экране, и ни один из них не удаляется.Я уже исследовал всюду, и хотя я сделал свой код очень похожим на другие, которые заставили его работать, он все равно не будет работать для меня.Я также уже прочитал документы по управлению памятью и до сих пор не вижу, что я делаю неправильно.Также я попытался добавить спрайты в пользовательские данные приборов, которые они должны представлять, и когда прибор уничтожен, я снова пытаюсь удалить спрайт, но происходит то же самое.Пожалуйста помоги!.

Я понял, что это было.Я допустил логическую ошибку в нескольких своих утверждениях if и случайно добавил спрайты дважды.Извините за это всех.

...