美文网首页iOS-随笔iOS DeveloperiOS学习笔记
iOS开发- 报错:Collection <__NSCFD

iOS开发- 报错:Collection <__NSCFD

作者: 像羽毛那样轻 | 来源:发表于2016-12-27 11:28 被阅读78次

    错误: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数组的大小。

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

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

    答案:原因是NSArry若在多线程中进行操作是很敏感的。

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

    解决办法可以,B= [NSArray arrayWithArray: A],再通过B来进行操作

    相关文章

      网友评论

        本文标题:iOS开发- 报错:Collection <__NSCFD

        本文链接:https://www.haomeiwen.com/subject/lfnsvttx.html