因未捕获的异常'NSGenericException'而终止应用程序,原因:'***Collection <__ NSArrayM:0x138cb4d0>在枚举时发生了变异

Moh*_*him 2 objective-c ios

我试图从数组中删除重复的对象.

 NSMutableArray* filterResults = [[NSMutableArray alloc] init];
    BOOL copy;

    // remove duplicate
    if (![arrSelectedVehicle count] == 0)
    {
        for (Vehicles *a1 in arrSelectedVehicle) {
            copy = YES;
            for (Vehicles *a2 in filterResults) {
                if ([a1.Vehicle_id isEqualToString:a2.Vehicle_id]) {
                    copy = NO;
                    [arrSelectedVehicle removeObjectIdenticalTo:a2];
                    break;
                }
            }
            if (copy) {
                [filterResults addObject:a1];
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在添加两个已经在数组中的对象

Nik*_*a P 6

在枚举数组时,无法修改数组.你可以做到以下几点:

 NSMutableArray* filterResults = [[NSMutableArray alloc] init];
BOOL copy;

// remove duplicate
if (![arrSelectedVehicle count] == 0)
{
NSArray* arraycopy = [arrSelectedVehicle copy];
    for (Vehicles *a1 in arraycopy) {
        copy = YES;
        for (Vehicles *a2 in filterResults) {
            if ([a1.Vehicle_id isEqualToString:a2.Vehicle_id]) {
                copy = NO;
                [arrSelectedVehicle removeObjectIdenticalTo:a2];
                break;
            }
        }
        if (copy) {
            [filterResults addObject:a1];
        }
    }
[arraycopy release];
}
Run Code Online (Sandbox Code Playgroud)