<__NSArrayM: 0x17425f440> was mutated while being enumerated.

这类错是因为:

当程序出现这个提示的时候,是因为你一边便利数组,又同时修改这个数组里面的内容,导致崩溃。此时我们可以采用block遍历里的stop解决。通过满足条件后,暂停循环再删除数组里的元素:

错误代码:

for (UISwitch * tempswitch in self.switchArr) {

  if (tempswitch.tag == switchFunc.tag) {

  [self.switchArr removeObject:tempswitch];

 }

}


用block遍历后的代码:

[self.switchArrenumerateObjectsUsingBlock:^(id_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {

UISwitch* tempswitch = obj;

if(tempswitch.tag== switchFunc.tag) {

*stop =YES;

if(*stop ==YES) {

[self.switchArrremoveObject:tempswitch];

}

}

}];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,814评论 0 9
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,093评论 3 38
  • { 11、核心动画 需要签协议,但是系统帮签好 一、CABasicAnimation 1、创建基础动画对象 CAB...
    CYC666阅读 1,591评论 2 4
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,219评论 30 472
  • http://blog.csdn.net/david21984/article/details/57451917 ...
    紫色冰雨阅读 583评论 0 0