iOS使用 enumerateObjectsUsingBlock 移除数组元素会漏删

1 删掉数组元素

错误的代码示例

    
    NSMutableArray *array = [@[@"1",@"2",@"3",@"4",@"5",@"6",] mutableCopy];
    [array enumerateObjectsUsingBlock:^( NSString *obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if (obj.integerValue == 3 || obj.integerValue == 4 || obj.integerValue == 6){
            [array removeObject:obj];
        }
    }];
    
    NSLog(@"之后的数组%@", array);

iOS使用 enumerateObjectsUsingBlock 移除数组元素会漏删_第1张图片

如图所示,我们想要删掉的4并没有删除

2 正确的做法

    NSMutableArray *array = [@[@"1",@"2",@"3",@"4",@"5",@"6",] mutableCopy];
    NSArray *array2 = @[@"3", @"4", @"6"];
    [array removeObjectsInArray:array2];
    NSLog(@"之后的数组%@", array);

结果如图
iOS使用 enumerateObjectsUsingBlock 移除数组元素会漏删_第2张图片

你可能感兴趣的:(ios)