iOS_报错"Collection NSArrayM was mutated while being enumerated"

在通讯录搜索时会不停的遍历数组源,获取匹配的用户信息用于展示,此时出现BUG。


报错:崩溃并报错“Collection <__NSArrayM: 0x166105d0> was mutated while being enumerated”。


原因1:数组遍历时修改了数组。解决方法:定义一个新数组,修改新数组


原因2:不同的线程同时读取和修改了数组。


解决方法:


 [userList enumerateObjectsUsingBlock:^(id  _Nonnull user, NSUInteger idx, BOOL * stop) {
}];


猜你喜欢

转载自blog.csdn.net/jacob_ios/article/details/79400321