0

我必须从数组中删除一个实例,但是当我删除该实例时,所有具有相同值的实例都会被删除。我使用的代码适用于其他对象,例如Sprites,但不适用于整数。

谁能指出我正确的方向?

的值deleteSpriteNr是要删除的对象,我还在 for 循环结束时使用了 [levelSpriteNrArray removeObjectAtIndex:deleteSpriteNr],但这会产生崩溃。

我很困惑。

编码:

int tel3 = 0;

for (NSNumber *spriteNr in levelSpriteNrArray ){
    if ( tel3 == deleteSpriteNr ){
        [spriteNrToRemove addObject:spriteNr];
        //[spriteNr removeFromParentAndCleanup:YES]  // does not works with integer;
    }
    tel3++;
}
[levelSpriteNrArray removeObjectsInArray:spriteNrToRemove];
4

1 回答 1

0

尝试这样做。希望这会有所帮助。

int tel3 = 0;

NSMutableIndexSet *indexes = [NSMutableIndexSet new];

for (int i = 0; i < [levelSpriteNrArray count]; i++ ){
    if ( tel3 == deleteSpriteNr ){
        [indexes addIndex:i];
        //[spriteNr removeFromParentAndCleanup:YES]  // does not works with integer;
    }
    tel3++;
}
[levelSpriteNrArray removeObjectsAtIndexes:indexes];
于 2013-08-19T11:38:11.193 回答