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

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

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

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

解决方法:

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