美文网首页
快速解决: Collection <__NSArrayM:

快速解决: Collection <__NSArrayM:

作者: iOS刘耀宗 | 来源:发表于2017-05-10 14:56 被阅读23次

这次在写代码中遇到这个问题,我遍历数组的时候同时又修改了数组中的内容,就报了如下的错误

Collection <__NSArrayM: 0x17424f510> was mutated while being enumerated.

在网上有很多解决方法,这个地方主要是利用block遍历的时候有个stop,当修改的时候就停止遍历,修改数组中的元素.在检测中发现block遍历比for遍历快20%左右,同时block能提供的参数更多比较方便操作.解决方式如下:

NSMutableArray*tempArray = [[NSMutableArrayalloc]initWithObjects:@"12",@"23",@"34",@"45",@"56",nil];

[tempArray enumerateObjectsUsingBlock:^(idobj,NSUIntegeridx,BOOL*stop) {

if([obj isEqualToString:@"34"]) {

*stop =YES;

if(*stop ==YES) {

[tempArray replaceObjectAtIndex:idx withObject:@"3333333"];

}

}

if(*stop) {

NSLog(@"array is %@",tempArray);

}

}];

承接APP,小程序,公众号开发. 性价比高.+V信:17723566468  有单子也可找我一起做哦

相关文章

网友评论

      本文标题:快速解决: Collection <__NSArrayM:

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