集合 <__NSArrayM: 0x7fa1f2711910> 在枚举时发生突变

2023-11-25

有很多类似标题的问题,但没有一个对我有帮助。

但我可以联系这个解决方案'NSGenericException',原因:集合 在枚举时发生了变化用我的问题来提问。因为这个终止正在发生 当我添加、删除带有数组的字符串对象时。

Error :

由于未捕获的异常“NSGenericException”而终止应用程序, 原因:“*** 集合 <__nsarraym:> 在枚举时发生了突变。”

首先抛出调用堆栈:

(

0   CoreFoundation                      0x00000001087b8c65 __exceptionPreprocess + 165
1   libobjc.A.dylib                     0x0000000108422bb7 objc_exception_throw + 45
2   CoreFoundation                      0x00000001087b85c4 __NSFastEnumerationMutationHandler + 132
3                                       0x0000000107e24cf5 -[ProfessionalRegSecond tableView:didDeselectRowAtIndexPath:] + 773
4   UIKit                               0x0000000109759d71 -[UITableView _deselectRowAtIndexPath:animated:notifyDelegate:] + 347
5   UIKit                               0x000000010974deea -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 187
6   UIKit                               0x000000010968062c _applyBlockToCFArrayCopiedToStack + 314
7   UIKit                               0x00000001096804a6 _afterCACommitHandler + 533
8   CoreFoundation                      0x00000001086ebca7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
9   CoreFoundation                      0x00000001086ebc00 __CFRunLoopDoObservers + 368
10  CoreFoundation                      0x00000001086e1a33 __CFRunLoopRun + 1123
11  CoreFoundation                      0x00000001086e1366 CFRunLoopRunSpecific + 470
12  GraphicsServices                    0x000000010d6c8a3e GSEventRunModal + 161
13  UIKit                               0x000000010965c900 UIApplicationMain + 1282
14                                      0x0000000107de14cf main + 111
15  libdyld.dylib                       0x000000010b585145 start + 1
)

libc++abi.dylib:以 NSException 类型的未捕获异常终止

我正在尝试做的事情:

我需要这样的数组,当我选择单元格时,我想将该对象添加到数组中,当我取消选择行时,我想从数组中删除该行,这样结果数组将只是选定的条目。这个怎么做 ?

这是我的代码

@implementation Professional

    {
         NSMutableArray *updatedLocalityArray; // alloc,init did in viewDidLoad
         NSString *toCheck;
    }

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

   {

        UITableViewCell *tableViewCell = [tableView cellForRowAtIndexPath:indexPath];

        NSLog(@"%@",tableViewCell.textLabel.text);

        toCheck = tableViewCell.textLabel.text;
        [updatedLocalityArray addObject:toCheck];
        NSLog(@"%@ *****", updatedLocalityArray);

   }

  - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
    {

        UITableViewCell *tableViewCell = [tableView cellForRowAtIndexPath:indexPath];
           NSLog(@"%@",tableViewCell.textLabel.text);

        for (NSString *test in updatedLocalityArray)
        {
            if ([test isEqualToString:tableViewCell.textLabel.text])
            {

                [updatedLocalityArray removeObject:test];
                NSLog(@"%@ *****", updatedLocalityArray);

            }

        }

    }

您无法从项目中删除项目NSMutableArray迭代它的同时。

对此有几种解决方案:

  • 迭代数组的副本

or

  • 使用基于索引的for循环而不是for each syntax.

不复制数组可以节省分配空间和一些 CPU 周期:

for (int i = updatedLocalityArray.count-1 ; i >= 0 ; i--)
{
    NSString *test = updatedLocalityArray[i];
    if ([test isEqualToString:tableViewCell.textLabel.text])
    {
        [updatedLocalityArray removeObjectAtIndex:i];
        NSLog(@"%@ *****", updatedLocalityArray);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集合 <__NSArrayM: 0x7fa1f2711910> 在枚举时发生突变 的相关文章

随机推荐

  • 在整个范围内均匀生成随机数

    我需要在指定的间隔 max min 内生成随机数 此外 随机数应该均匀分布在区间内 而不是位于特定点 目前我生成为 for int i 0 i lt 6 i DWORD random rand max min 1 min 根据我的测试 随机
  • LinkedHashSet .equals() 与 LinkedList .equals() 具有相同的元素但顺序不同

    考虑以下 SSCCE public static void main String args LinkedHashSet
  • CSS:如何垂直和水平对齐图像?

    我的页面有空间容纳图像 例如最大尺寸为 100x100 的图像 用户可以上传任何尺寸的图像 Web 应用程序将在保持宽高比的情况下将其大小调整为 100x100 因此 图像的大小可以调整为 75x100 或 100x75 等 无论调整大小的
  • 如何使用 Django 中内置的“password_reset”视图?

    我在 urls py 中设置了以下条目 r password reset django contrib auth views password reset 但一旦我去http 127 0 0 1 8000 password reset 我收
  • 在 colgroup 中使用文本对齐中心

    我的页面中有一个表格 我使用 colgroups 以相同的方式格式化此列中的所有单元格 它适用于背景颜色等 但我似乎无法弄清楚为什么文本对齐中心不起作用 它不会将文本居中对齐 Example table cellspacing 5 tabl
  • 如何在flutter中显示.9.png格式的图片?

    这是我的代码 new Image asset images launcher border highlight 9 png fit BoxFit fill 当我改变图像的宽度和高度时 它的显示效果很差 但在原生android中显示正常 fl
  • 在原子变量的上下文中什么是总线锁定?

    我使用 C 很长时间了 现在我开始学习汇编并了解处理器的工作原理 不仅仅是为了好玩 而且我必须将其作为测试程序的一部分 在学习汇编时 我开始听到一些在讨论多线程时到处听到的术语 因为我在科学计算中进行了大量的多线程处理 我正在努力了解全貌
  • 用 Java 处理下载

    我如何能够使用 Java 中的 HttpResponse 处理下载 我向特定站点发出了 HttpGet 请求 该站点返回要下载的文件 我该如何处理这个下载 InputStream 似乎无法处理它 或者也许我使用它的方式错误 假设你实际上正在
  • Fortran 可变参数宏中的 CPP/GPP(加上 Fortran // 连接)

    我正在尝试编译一个巨大的 世界知名的数值天气预报代码 主要用 Fortran 90 编写 使用cpp广泛且成功地与 PGI Intel 和 gfortran 合作 现在 我继承了一个版本 其中专家添加了数百个可变参数宏案例 他们使用英特尔和
  • 安装 IE9 后 Visual Studio 2012 崩溃(故障模块 ntdll.dll)

    Okay 自从 Visual Studio RTM 在我的工作计算机上发布以来 我一直在运行它 上周五我安装 更新了 IE 至版本 9 以测试 JavaScript 问题 安装 IE9 并重新启动计算机后 Visual Studio 201
  • .NET:Type.GetHashCode 是否保证唯一?

    我有人使用 Type GetHashCode 就好像它是主键一样 我认为这是一个可怕的想法 但我想知道是否有某种记录的特殊情况表明没有两种类型具有相同的哈希码 GetHashCode 没有任何保证 除了它可能会随机分布 不是唯一的 文档特别
  • VSTS 构建失败并出现 MSB3325,无法导入 PFX 密钥文件

    我创建了一个构建定义来在 Visualstudio com 上在线构建桌面应用程序 该应用程序在任务构建解决方案 Visual Studio 构建 中失败 并出现以下错误 错误 C Program Files x86 Microsoft V
  • 如何在 Play Framework 2 中调用接受可变数量参数的模板

    Play Framework 2 模板语言非常好 然而 尽管它 受到 微软 Razor 语言的 启发 但一个重要的设计决策是不同的 如何 逃回 HTML Razor 会寻找 HTML 样式的标签 而 Play 2 使用某种启发式方法 我正在
  • 计算第 N 个置换步骤?

    我有一个字母 a z 的 char 26 通过嵌套的 for 语句 我正在生成一个序列列表 例如 aaa aaz aba abb abz zzy zzz 目前 该软件被编写为从 aaa zzz 生成所有可能值的列表 然后维护一个索引 并遍历
  • MATLAB:需要制作 4D 绘图(3D + 颜色/颜色)

    我需要制作一个 3D 表面 其中颜色代表第四个变量 我知道 冲浪 与我需要的类似 但事实并非如此 基本上 我有以下变量 t 1 米 y 1 n a 1 o 这些应该是三个笛卡尔坐标轴 我还有一个变量 S 其尺寸为 m x n x o 基本上
  • 避免脚本中某些参数的混合

    我有一个脚本可以使用获取数十个参数 标志Getopt Long 某些标志不允许混合 例如 linux unix不允许一起供应 我知道我可以使用if陈述 有没有更干净 更好的方法来做到这一点 if如果我不想允许多种标志组合 块可能会变得丑陋
  • C/C++中有复制数组的函数吗?

    我知道Java有一个函数System arraycopy 复制数组 我想知道 C 或 C 中是否有一个函数可以复制数组 我只能找到通过使用复制数组的实现for循环 指针等 但是有没有可以用来复制数组的库函数 既然您要求 C 解决方案 inc
  • 如何使用 JavaScript 将字符串的波斯语和阿拉伯语数字转换为英语?

    如何使用简单的函数将波斯 阿拉伯数字转换为英文数字 arabicNumbers persianNumbers 它是相同的架构 但代码页不同 Oneliner英语 阿拉伯语和波斯语数字之间所有 6 种可能的翻译 警告 请注意 此解决方案效率不
  • Eclipse 为带有“m”后缀的域对象和类成员生成 getter/setter

    我有一个关于域对象中生成的 getter 和 setter 方法的小问题 我想为我的源代码使用通用的样式指南 该风格指南的一部分说 我以成员前缀 m 开头每个类成员名称 class User String mName List
  • 集合 <__NSArrayM: 0x7fa1f2711910> 在枚举时发生突变

    有很多类似标题的问题 但没有一个对我有帮助 但我可以联系这个解决方案 NSGenericException 原因 集合 在枚举时发生了变化用我的问题来提问 因为这个终止正在发生 当我添加 删除带有数组的字符串对象时 Error 由于未捕获的