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

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

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


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


通常2种状况会发生这种错误:spa

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

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


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

解决办法能够,B= [NSArray arrayWithArray: A],再经过B来进行操做.言外之意就是将数组同时进行的两个状态拆分出来,防止由于冲突而出现错误警告.class

相关文章
相关标签/搜索