今天遇到一个我自己不常见的问题随手记一下如下:
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x7ae683e0> was mutated while being enumerated.'
查资料原因是在遍历时修改了数组原来数组及在同一时间,不同的线程同时读取和修改了数组,总结两种比较直接的解决方法
第一种是可以通过或arrayWithArray:或先定义数组再重新定义一个新的一样的数组,及将需要遍历的和需要的删除的数组分开如下:
第二种是通过使用block块遍历原数组如下:
还有说用线程操作,个人感觉不太现实或许是我没有想起来,如果有别的方法还望指教。另外只是随手记一下,和大家分享,可指教勿喷,