我有一个存储鼠标点的NSMutableArray,用于Box2d物理模拟.当我用一根以上的手指弹奏时,我会得到一个例外

NSArray在被枚举时发生了变异

我知道这是因为我正在从数组中删除对象,同时也在数组中枚举,从而使枚举无效.

我想知道的是,解决这个问题的最佳策略是什么?我在网上看到了一些解决方案:@synchronized,在枚举之前复制数组,或者将touch joint放入垃圾数组以供以后删除(我不确定这是否有效,因为我需要在从世界上删除鼠标点后立即将其从数组中删除).

推荐答案

您总是可以在没有枚举器的情况下进行迭代.

无论如何,我不明白为什么一个带有对象的数组会成为一个问题.我不知道你们的具体情况和涉及的技术,但理论上应该没有问题.

不管怎样,希望我能帮忙.

Objective-c相关问答推荐

NSViewController 中的 viewDidLoad?

UITableViewCell:如何防止蓝色 Select ​​背景不带 isSelected 属性?

如何将 CGPoint 添加到 NSMutableArray?

UIRefreshControl iOS 6 xcode

处理 ARC 中的指针对指针所有权问题

有没有办法清除 UIImage 类使用的缓存?

如果用户禁用了应用程序的推送,是否可以进行静默远程通知?

如何判断 Cocoa 和 Objective-C 中是否存在文件夹?

从我在 iPhone 上的应用程序调用官方 *Settings* 应用程序

如何切换回已经加载的 UIViewController?

未找到 Apple Mach-O 链接器警告目录

无法在 Interface Builder (Xcode 5) 中创建与子视图的出口连接

Objective-C:块 vs. Select 器 vs. 协议

在字符串Objective-c中连接字符串

在 UITextField 文本上投影

嵌入自定义容器视图控制器时,内容位于导航栏下方.

Highlighted 和 Selected UIButton 的 State 有什么区别?

iOS:开源 VoIP/SIP Objective-C 代码

UIScrollView contentSize 不起作用

UICollectionView:如何检测滚动何时停止