我遇到了一个错误,当其他对象被添加到NSMutableArray的其他地方时,您试图从NSMutableArray中删除对象.为了简单起见,我不知道如何修复它.以下是我正在做的:

我有4个定时器调用4个不同的方法,将一个对象添加到同一个数组中.现在,当我按下某个按钮时,我需要删除数组中的所有对象(或至少部分对象).所以我试着先让所有4个计时器失效,然后用数组做我想做的工作,然后启动计时器.我以为这会奏效,因为我不再使用计时器来枚举数组,但似乎它不起作用.

有什么建议吗?

推荐答案

这与你的计时器无关.因为(我假设)你的定时器和你的修改方法在同一个线程上工作,你不需要停止和启动它们.iOS不使用中断模式进行计时器回调,它们必须像任何其他事件一样等待轮到它们:)

你可能在做类似的事情

for (id object in myArray)
   if (someCondition)
       [myArray removeObject:object];

在处理可变数组时,不能编辑它,因此需要创建一个临时数组来保存要删除的内容

// Find the things to remove
NSMutableArray *toDelete = [NSMutableArray array];
for (id object in myArray)
   if (someCondition)
       [toDelete addObject:object];

// Remove them
[myArray removeObjectsInArray:toDelete];

Objective-c相关问答推荐

在没有for循环的情况下获取另一个数组中每个对象的属性值数组

Objective-C NSMutableArray 在枚举时发生了变异?

协议与类别

如何在for (id item in items)objective-c 循环中获取数组索引?

animateWithDuration:animations: 会阻塞主线程吗?

如何将 UInt32 设置为最大值

右对齐的 UITextField 空格键在 iOS 7 中不前进光标

适用于 ios 的 360° 全景库

失go 对 UITextView 的关注时隐藏键盘

OSStatus 错误代码 -34018

CFURLCopyResourcePropertyForKey 失败,因为通过 URL 没有方案

从 UITabBarController 在当前上下文中呈现模态视图控制器后出现黑屏

强制iOS应用程序崩溃的最快方法是什么?

架构 i386 clang 的重复符号

获取临时目录中文件的文件路径和 URL

可以在 NSLocalizedString 中使用变量和/或参数吗?

如何在 xcode 项目中启用/禁用 ARC?

在 iOS 7 上运行应用程序时显示黑条(4 英寸视网膜显示屏)

ARC 下的 NSString 属性应该是强的还是复制的?

info.plist 中的Application Requires iPhone Environment键是什么意思?