2013-08-18 91 views
0

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

谁能指点我正确的方向?

deleteSpriteNr的值是de删除的对象,我也在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]; 

回答

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]; 
+0

可能有点迟,但谢谢你anayway Sauvage –