NSMutableArray的objectAtIndex问题

时间:2013-12-28 18:12:00

标签: ios nsmutablearray

我正在开发一款适用于iPhone的游戏,其中我有2个阵列。

在游戏中“生活”的对象之一,当这些对象“死亡”时,它们被放置在另一个阵列中,以便在第一个循环结束时从第一个中移除。

这是必要的,因为如果对象在循环中死亡并且它立即从第一个数组中删除,则索引将丢失,并且有时会提供无效的地址访问。

然后我有一个NSMutableArray,它包含要从活动对象数组中删除的对象。

在要删除对象的数组中,我不断添加和删除项目。有时当我使用带有要移除的项的数组的objectAtIndex时,它会重新调用其他对象。

例如,在第一时间_enemiesToRemove有2个对象:

([0]-> 0x0a8b5120, [1]->0x18f3a090)

for(int i = [_enemiesToRemove count] - 1; i >= 0 ; i--){
    fish = [_enemiesToRemove objectAtIndex:i];
    [self removeEnemy:fish];
}

然后

int i = [_enemiesToRemove count] - 1 

给出i = 1,但是当它正在进行时

[_enemiesToRemove objectAtIndex:i] 

它正在返回地址为0xbfffcd58的其他对象,它应该是[1] - > 0x18f3a090

这里发生了什么,有人知道吗?它永远不会发生。它是随机发生的。

0 个答案:

没有答案