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

发布时间:2020-07-14 17:28:59 作者:完美坏蛋911
来源:网络 阅读:515

错误:Terminating app due to uncaught exception 'NSGenericException', reason: 

'*** Collection <__NSCFDictionary: 0xc425570> was mutated while being enumerated.


因为我在枚举menuList可变数组的时候,给menuList添加元素,那这个数组的大小发生了变化,不知道枚举多少次了。


一般2种情况会发生这种错误:

1,对可变数组A在枚举的时候,添加或者删除数组A的元素,改变了数组A的大小。

2,对于数组B,一个线程在对B进行枚举操作,另一个线程改变B数组的大小。


如果在某个线程,对A NSArry进行写操作。在另外某线程读取A操作,就会出现“Collection was mutated while being enumerated”的错误警告。

解决办法可以,B= [NSArray arrayWithArray: A],再通过B来进行操作.言外之意就是将数组同时进行的两个状态拆分出来,防止因为冲突而出现错误警告.


推荐阅读:
  1. python如何遍历列表进行操作
  2. JavaScript中有哪些常见的遍历操作

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

程序 元素 reason

上一篇:KVC 与 KVO 理解

下一篇:使用redis实现计数器

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》