Collection NSArrayM was mutated while being enumerated
NSMutableArray* arrMutable = [NSMutableArray array];
//不能在枚举可变数组的同时增删其项目,下面的写法会报错。
for(AClass* item in arrMutable){
BOOL needRemove = YES;
if(needRemove){
[arrMutable removeObject:item];
}
}
正确作法:
NSMutableArray* arrMutable = [NSMutableArray array];
//不能对mutable arr在枚举的同时增删项目,下面的作法会报错。
for(AClass* item in [arrMutable copy]){
BOOL needRemove = YES;
if(needRemove){
[arrMutable removeObject:item];
}
}
注意,如果是自定义类,如果在数组中比较是否相等,需要重写自定义类的isEqual和hash这两个方法:
#pragma mark - override NSObject 数组中比较时需要 -
- (BOOL)isEqual:(id)other
{
if ([otherisKindOfClass: [AClassclass]]
&& [((AClass*)other).name isEqualToString:self.name]){
returnYES;
}else{
returnNO;
}
}
- (NSUInteger)hash
{
return [_name hash];
}
Collection NSArrayM was mutated while being enumerated相关推荐
- iPhone开发-- 崩溃之 Collection was mutated while being enumerated.的三种解决办法
崩溃提示 崩溃提示:Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection &l ...
- was mutated while being enumerated.
又一次写验证码demo的时候,一下代码carsh了 [self.qBgView.layer.sublayers enumerateObjectsUsingBlock:^(CALayer * _Nonn ...
- Collection __NSArrayM: 0xxxxxxx was mutated while being enumerated.
在遍历时,又操作NSArray或者NSMutableArray,会出现这个错误. NSMutableArray * array = xxx; for (NSDictionary * dic in ...
- was mutated while being enumerated
在oc中会出现这种情况,当时不知道怎么回事,就一直查代码,因为以前写的就没有问题,为什么这次就出现问题了. - (void)deleteContactsForName:(NSString *)name ...
- Objective-C 高性能的循环遍历 forin - NSEnumerator - 枚举 优化
Cocoa编程的一个通常的任务是要去循环遍历一个对象的集合 (例如,一个 NSArray, NSSet 或者是 NSDictionary). 这个看似简单的问题有广泛数量的解决方案,它们中的许多不乏 ...
- ios nstimer实现延时_iOS 中常见 Crash 总结
作者 | 在路上重名了啊 @(iOS总结)[温故而知新] [TOC] 1.找不到方法的实现unrecognized selector sent to instance 2.KVC造成的crash 3. ...
- NSArray使用小技巧
在IOS开发中,我们经常用的NSArray或者NSMutableArray ,但是当使用不当的时候,会有下面的错误提示. Collection <__ NSArrayM : 0xxxxxxx&g ...
- iOS NSArray 、NSMutableArray原理揭露
在iOS开发中,我们在非常非常多的地方用到了数组.而关于数组,有很多需要注意和优化的细节,需要我们潜入到下面,去了解. 阅读<Effective Objective-C 2.0>的原版的时 ...
- 数组元素在删减的同时进行遍历的操作,程序崩溃问题
错误:Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSC ...
- 整理iOS 错误警告
1. App installation failed A valid provisioning profile for this executable was not found. 原因是测试手机上没 ...
最新文章
- git解决代码提交冲突
- MATLAB实战系列(二十九)-头脑风暴优化(BSO)算法求解旅行商问题(TSP)-交叉算子
- 是学习Java还是Python?一张图告诉你!
- json字符串生成C#实体类的工具
- Linq中dbSet 的查询
- Python 判断字典是否有key,判断字典key的个数
- 大数据之-Hadoop之HDFS_hadoop集群中的安全模式_原理---大数据之hadoop工作笔记0074
- C 标准库 —— ctypes.h
- phalapi 数据库锁_[7.11]-phalapi-进阶篇5(数据库读写分离) | PhalApi(π框架) - PHP轻量级开源接口框架...
- oracle mysql认证考试流程_报考oraclemysql认证考试流程
- 爬虫自动定时获取查重结果并将结果发送至指定邮箱
- npm i 安装依赖 报错 npm ERR! code EINTEGRITY npm ERR! sha512-*****==.(12008 bytes) 问题处理
- 延时消息推送的正确姿势你get到了吗?
- java毕业设计基于的高校教室申请管理系统mybatis+源码+调试部署+系统+数据库+lw
- 计算机Excel的公式计算,Excel如何自动计算天数公式?
- 四天搞懂生成对抗网络(二)——风格迁移的“精神始祖”Conditional GAN
- 网络程序设计——VC的多线程编程(线程与进程)
- WS小世界网络构建实验(Matlab版)
- 推荐一个非常棒的问卷小程序
- Nginx命令stop或者quit停止服务器无效失效