我有一个存储鼠标点的NSMutableArray
,用于Box2d物理模拟.当我用一根以上的手指弹奏时,我会得到一个例外
NSArray在被枚举时发生了变异
我知道这是因为我正在从数组中删除对象,同时也在数组中枚举,从而使枚举无效.
我想知道的是,解决这个问题的最佳策略是什么?我在网上看到了一些解决方案:@synchronized
,在枚举之前复制数组,或者将touch joint放入垃圾数组以供以后删除(我不确定这是否有效,因为我需要在从世界上删除鼠标点后立即将其从数组中删除).
我有一个存储鼠标点的NSMutableArray
,用于Box2d物理模拟.当我用一根以上的手指弹奏时,我会得到一个例外
NSArray在被枚举时发生了变异
我知道这是因为我正在从数组中删除对象,同时也在数组中枚举,从而使枚举无效.
我想知道的是,解决这个问题的最佳策略是什么?我在网上看到了一些解决方案:@synchronized
,在枚举之前复制数组,或者将touch joint放入垃圾数组以供以后删除(我不确定这是否有效,因为我需要在从世界上删除鼠标点后立即将其从数组中删除).
您总是可以在没有枚举器的情况下进行迭代.
无论如何,我不明白为什么一个带有对象的数组会成为一个问题.我不知道你们的具体情况和涉及的技术,但理论上应该没有问题.
不管怎样,希望我能帮忙.