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相关推荐

  1. iPhone开发-- 崩溃之 Collection was mutated while being enumerated.的三种解决办法

    崩溃提示 崩溃提示:Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection &l ...

  2. was mutated while being enumerated.

    又一次写验证码demo的时候,一下代码carsh了 [self.qBgView.layer.sublayers enumerateObjectsUsingBlock:^(CALayer * _Nonn ...

  3. Collection __NSArrayM: 0xxxxxxx was mutated while being enumerated.

    在遍历时,又操作NSArray或者NSMutableArray,会出现这个错误. NSMutableArray * array = xxx;   for (NSDictionary * dic in  ...

  4. was mutated while being enumerated

    在oc中会出现这种情况,当时不知道怎么回事,就一直查代码,因为以前写的就没有问题,为什么这次就出现问题了. - (void)deleteContactsForName:(NSString *)name ...

  5. Objective-C 高性能的循环遍历 forin - NSEnumerator - 枚举 优化

    Cocoa编程的一个通常的任务是要去循环遍历一个对象的集合  (例如,一个 NSArray, NSSet 或者是 NSDictionary). 这个看似简单的问题有广泛数量的解决方案,它们中的许多不乏 ...

  6. ios nstimer实现延时_iOS 中常见 Crash 总结

    作者 | 在路上重名了啊 @(iOS总结)[温故而知新] [TOC] 1.找不到方法的实现unrecognized selector sent to instance 2.KVC造成的crash 3. ...

  7. NSArray使用小技巧

    在IOS开发中,我们经常用的NSArray或者NSMutableArray ,但是当使用不当的时候,会有下面的错误提示. Collection <__ NSArrayM : 0xxxxxxx&g ...

  8. iOS NSArray 、NSMutableArray原理揭露

    在iOS开发中,我们在非常非常多的地方用到了数组.而关于数组,有很多需要注意和优化的细节,需要我们潜入到下面,去了解. 阅读<Effective Objective-C 2.0>的原版的时 ...

  9. 数组元素在删减的同时进行遍历的操作,程序崩溃问题

    错误:Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSC ...

  10. 整理iOS 错误警告

    1. App installation failed A valid provisioning profile for this executable was not found. 原因是测试手机上没 ...

最新文章

  1. git解决代码提交冲突
  2. MATLAB实战系列(二十九)-头脑风暴优化(BSO)算法求解旅行商问题(TSP)-交叉算子
  3. 是学习Java还是Python?一张图告诉你!
  4. json字符串生成C#实体类的工具
  5. Linq中dbSet 的查询
  6. Python 判断字典是否有key,判断字典key的个数
  7. 大数据之-Hadoop之HDFS_hadoop集群中的安全模式_原理---大数据之hadoop工作笔记0074
  8. C 标准库 —— ctypes.h
  9. phalapi 数据库锁_[7.11]-phalapi-进阶篇5(数据库读写分离) | PhalApi(π框架) - PHP轻量级开源接口框架...
  10. oracle mysql认证考试流程_报考oraclemysql认证考试流程
  11. 爬虫自动定时获取查重结果并将结果发送至指定邮箱
  12. npm i 安装依赖 报错 npm ERR! code EINTEGRITY npm ERR! sha512-*****==.(12008 bytes) 问题处理
  13. 延时消息推送的正确姿势你get到了吗?
  14. java毕业设计基于的高校教室申请管理系统mybatis+源码+调试部署+系统+数据库+lw
  15. 计算机Excel的公式计算,Excel如何自动计算天数公式?
  16. 四天搞懂生成对抗网络(二)——风格迁移的“精神始祖”Conditional GAN
  17. 网络程序设计——VC的多线程编程(线程与进程)
  18. WS小世界网络构建实验(Matlab版)
  19. 推荐一个非常棒的问卷小程序
  20. Nginx命令stop或者quit停止服务器无效失效

热门文章

  1. 计算机具有逻辑思维,逻辑思维能力
  2. js判断浏览器是否搜狗浏览器
  3. 文本生成图像Text-To-Image评估指标IS、FID、VSS、R-precision
  4. CC2430基础——IAR的安装及配置
  5. 用PS制作电子签名方法总结
  6. matlab小波变换学习入门
  7. 原生开发什么意思_原生开发和混合开发的优劣势都是什么?
  8. win10计算机加域步骤,Windows域是什么|win10系统加入域的详细步骤
  9. 数据库删除数据 truncate 与 delete
  10. SharePoint CAML In Action——Part II