美文网首页
遍历删除NSMutableArray中的项目

遍历删除NSMutableArray中的项目

作者: AsABurger | 来源:发表于2017-05-30 00:53 被阅读0次

    NSMutableArray禁止用for in枚举

    NSMutableArray *array = [NSMutableArray arrayWithCapacity:10];
    [array addObject:@"1"];
    [array addObject:@"2"];
    [array addObject:@"3"];
    [array addObject:@"4"];
    
    for (NSString *str in array){  //NSMutableArray禁止用for in枚举,系统会报错
      if([str isEqualToString:@"3"]{
           [array removeObject:str];
      }
    }
    

    一种常用解决办法:

    通过不可变数组的枚举来对MutableArray进行过滤操作

    NSMutableArray *array = [NSMutableArray arrayWithCapacity:10];
    [array addObject:@"1"];
    [array addObject:@"2"];
    [array addObject:@"3"];
    [array addObject:@"4"];
    
    NSArray *tempArray = [array copy];
    for(NSString *str in tempArray){//tempArray是不可变数组能进行for in枚举
        if([str isEqualTo:@"3"] || [str isEqualTo:@"4"]){
            [array removeObject:str];//通过tempArray的枚举来对(MutableArray)array进行过滤操作
        }
    }
    

    一种思路:通过倒序遍历来删除

    enumerateObjectUsingBlock:^(){
    }

    相关文章

      网友评论

          本文标题:遍历删除NSMutableArray中的项目

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