我使用以下方法删除了双打,但是并不能完全起作用。有什么建议么?

感谢您的帮助,

   -(NSMutableArray*)removeDuplicateCars:(NSMutableArray*)array{
    NSMutableArray *noDuplicates =[[NSMutableArray alloc]init];
    for (int i=0; i<[array count]; i++) {
        int counter =0;
        Car *car =(Car*)[array objectAtIndex:i];
        if ([noDuplicates count]==0) {
            [noDuplicates addObject:car];
        }
        for (int i=0; i<[noDuplicates count]; i++) {
            Car *car2 =(Car*)[array objectAtIndex:i];
            if (![car.name isEqualToString:car2.name]) {
                counter++;
            }
        }
        if (counter==[noDuplicates count]) {
            [noDuplicates addObject:car];
        }
    }
    NSLog(@"number of results = %i",[noDuplicates count]);
    return noDuplicates;
}

最佳答案

创建一个名为“ addedCars”的数组-您将使用它存储每个唯一汽车的名称。

在每次迭代中,使用[NSArray containsObject:]检查当前名称是否已添加到“ addedCars”中。如果不是,则将名称添加到“ addedCars”,并将汽车添加到“ noDuplicates”。否则,请跳过此项目,因为它已被添加到noDuplicates中。

10-06 02:56