本文介绍: 崩溃提示:Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘*** Collection was mutated while being enumerated.’如果逻辑稍微有点复杂,为了防止死锁,还是用递归锁吧。原因就是在变量数组的时候,改变了数组的内容(或增或减数组中的元素)。再定义一个一模一样的数组B,将原数组的内容复制给数组B,再遍历数组B。
崩溃提示
崩溃提示:Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘*** Collection <CALayerArray: 0x14df0bd0> was mutated while being enumerated.’
原因就是在变量数组的时候,改变了数组的内容(或增或减数组中的元素)。
解决办法
方法一
再定义一个一模一样的数组B,将原数组的内容复制给数组B,再遍历数组B
方法二
创建一个串行队列,之后将对数组的操作全部放到该队列中
代码如下
方法三
用锁,互斥锁和递归锁。如果逻辑稍微有点复杂,为了防止死锁,还是用递归锁吧。
参考:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。