Collection <__NSArrayM: 0x76c11b0> a été muté, tout en étant énumérés

Je suis relativement nouveau à l'obj-c, donc je dois manquer quelque chose, mais mon programme crash quand un ennemi entre en collision avec un mur. J'ai situé l'endroit où je suis retrait de l'ennemi à partir de la boucle, alors que dans la boucle, mais pour la vie de moi, je ne peux pas comprendre comment le corriger.
Mon code est comme suit:

(l'erreur est "[allEnemies removeObject:enemyType1];")

//TOUJOURS EN COURS D'EXÉCUTION
-(void) mise à jour:(ccTime)dt
{

for (CCSprite *enemyType1 in allEnemies) { //for every attacking unit in allEnemies

    //Adjust the collison box for each enemey depending on the height of the enemy
    float a;
    float b;
    float yOne = (wall.contentSize.height-enemyType1.position.y);
    float yTwo = (wall.contentSize.height);
    float xTwo = 30;
    a = (xTwo*(yOne/yTwo)); //always < 1
    b = xTwo-a;             //always > 1


    //Create the altered collison box 
    CGRect enemyType1Rect = CGRectMake (
                enemyType1.position.x - (enemyType1.contentSize.width/2), 
                enemyType1.position.y - (enemyType1.contentSize.height/2), 
                enemyType1.contentSize.width+b, 
                enemyType1.contentSize.height
                                       );


    //If the enemey hits the wall, stop it, then add it to the attacking enemies array
    if (CGRectIntersectsRect(enemyType1Rect, wall.boundingBox)) {
        [enemyType1 stopAllActions];
        [allEnemies removeObject:enemyType1];
        [attackingEnemies addObject:enemyType1];            
    }


}
//Wall Collison END

OriginalL'auteur user1091516 | 2011-12-10