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 に答える