遍历数组修改数据导致的错误
来源:互联网 发布:淘宝登录不了怎么办 编辑:程序博客网 时间:2024/04/27 06:44
错误提示:
Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘*** Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.’
原因:由于遍历数组时候 修改了数组中的数据 导致错误。
解决办法:
定义一个数组B,并把要遍历的数组A的值赋给他 。
然后遍历数组B 要修改数据的A就可以修改数据了。
NSArray *arr = content[@"workface"];
for (NSDictionary *dictin arr) {
if ([dict[@"workfaceid"]isEqual:_faceInfo[@"workfaceid"]]) {
// 先移除后添加
[content[@"workface"]removeObject:dict];
[content[@"workface"]addObject:_faceInfo];
}
}
另一种快捷 的方法是
[self.viceMoreselsenumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx,BOOL * _Nonnull stop) {
if ([objisEqualToString:[@(sender.tag-10001)stringValue]]) {
*stop = YES;
if (*stop==YES) {
[self.viceMoreselsremoveObjectAtIndex:idx];
}
}
}];
这种方法 遍历速度更快 。- 遍历数组修改数据导致的错误
- AngularJS遍历数组由于数组元素重复导致的错误解决方案
- 修改时间不一致导致的编译错误
- 数组删除和用遍历修改数据或复杂数据
- mysql 针对高并发下,同时修改单条数据发生冲突导致数据错误的问题(例如:高并发下单,导致库存为负数)
- ng-repeat 遍历同值数组导致的报错
- Freebsd中fstab修改错误导致文件系统只读的解决方法
- ubuntu 修改环境变量导致的错误 登录失败
- 由于未修改主机名导致的yarn框架错误
- 串口通讯奇偶校验位的设置导致数据错误
- java去掉数组中重复的数据和遍历数据
- 修复win10因分区表修改导致的启动错误,另grub2修改默认引导小记
- 遍历集合时删除、增加、修改等操作导致的异常处理
- 074.Traverse Array 遍历数组的常见错误
- 074.Traverse Array 遍历数组的常见错误
- Oracle由于排序字段错误,导致分页数据错误,错误原因真的想不到!!!
- XIB 导致的错误
- strlen导致的错误
- NodeJS、NPM安装配置步骤(windows版本)
- CDH管理界面查看各框架的版本(hive为例)
- angularjs +boostrap后台模板实现原理
- Android开发性能优化
- AFNetworking3.0
- 遍历数组修改数据导致的错误
- camtasia 视频录制教程
- easyui——一些有用的组件使用小记
- vector利用swap()函数进行内存的释放
- android 事件派发流程详解
- mysql中间件研究( Atlas,cobar,TDDL,mycat,heisenberg,Oceanus,vitess,OneProxy )
- 多进程:信号量的监听与处理函数
- new/delete 和malloc/free 的区别一般汇总
- android设置通知栏颜色