遍历数组的同时删除
来源:互联网 发布:微观调查数据 编辑:程序博客网 时间:2024/06/03 16:53
错误信息:
Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
1.
NSMutableArray *tempArray = [[NSMutableArrayalloc]initWithObjects:@"12",@"23",@"34",@"45",@"56",nil];
[tempArray enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop) {
if ([objisEqualToString:@"34"]) {
*stop =YES;
if (*stop ==YES) {
[tempArrayreplaceObjectAtIndex:idxwithObject:@"3333333"];
}
}
if (*stop) {
NSLog(@"array is %@",tempArray);
}
}];
利用block来操作,根据查阅资料,发现block便利比for便利快20%左右,这个的原理是这样的:
找到符合的条件之后,暂停遍历,然后修改数组的内容
这种方法非常简单哟
2.
NSMutableArray
* arrayTemp = xxx;
NSArray
* array = [
NSArray
arrayWithArray: arrayTemp];
for
(
NSDictionary
* dic in array) {
if
(condition){
[arrayTemp removeObject:dic];
}
}
// - 把 arr2数组中的数据追加到 arr的后边
[arr addObjectsFromArray:arr2];
// - 把 arr2数组中的数据追加到 arr的最前边
NSRange range = NSMakeRange(0, arr2.count)
NSIndexSet * set = [NSIndexSet indexSetWithIndexesInRange:<#(NSRange)#>]
[arr insertObjects:arr2 atIndexes:set];
[self.dealsremoveObjectsInArray:tempArray];
- 遍历数组的同时删除
- 遍历可变数组的同时删除元素
- iOS遍历数组的同时删除元素
- ArrayList遍历的同时删除
- ArrayList遍历的同时删除
- arrayList遍历的同时删除
- 遍历可变数组的同时删除数组元素的几种解决方案
- 遍历可变数组的同时删除数组元素的几种解决方案
- Java Map遍历的同时进行元素删除
- 遍历List集合同时删除元素的正确方法
- JavaScript: 遍历Array的同时删除指定项
- ArrayList在遍历的同时无法删除数据
- java 遍历集合的同时添加和删除元素
- iOS 数组遍历删除元素的问题
- iOS 数组遍历删除元素的问题
- 数组元素的添加、删除、定位、遍历
- 遍历数组删除某元素的方法
- 数组遍历删除
- QQ通信原理及QQ是怎么穿透内网进行通信的?
- 【JAVA】什么叫回调方法
- Objective-C开发编码规范:4大方面解决开发中的规范性问题
- 专访支付宝首席架构师程立
- 【回调函数】透彻理解
- 遍历数组的同时删除
- 移动场景下的图像处理应用设计
- log4php不能写文件
- 1019. General Palindromic Number (20)
- Android margin的负值的使用
- Git的常规设置(服务器的搭建)
- Inno Setup 5.0打包时无法包括隐藏文件
- Subsets
- 简单Map实用