快速解决: Collection <__NSArrayM: 0x17424f510> was mutated while being enumerated.

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

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: 0x17424f510> was mutated while being enumerated.)