数组元素去重

  • 根据某一对象的属性去重
   self.arrayData = [NSMutableArray array];
    
    [self addModelsName:@"小明" age:1 gender:1];
    [self addModelsName:@"小明" age:2 gender:1];
    [self addModelsName:@"小花" age:3 gender:1];
    [self addModelsName:@"小王" age:4 gender:1];
    [self addModelsName:@"小刘" age:5 gender:1];

    NSMutableSet *set = [NSMutableSet set];
    // 核心代码
    NSPredicate * predict = [NSPredicate predicateWithBlock: ^BOOL(id obj, NSDictionary *bind) {
        LBPersonModel *Obj = (LBPersonModel*)obj;
        BOOL seen = [set containsObject:Obj.name];
        if (!seen) {
            [set addObject:Obj.name];
        }
        return !seen;
    }];
    NSArray *array = [self.arrayData filteredArrayUsingPredicate: predict];

    NSLog(@"array-->%@",array);

-(void) addModelsName:(NSString *)name  age:(NSInteger)age gender:(NSInteger)gender{
    LBPersonModel *model = [[LBPersonModel alloc] init];
    model.name = name;
    model.age = age;
    model.gender = gender;
    [self.arrayData addObject:model];
}

你可能感兴趣的:(数组元素去重)