基于Objective-C中的属性从数组中删除重复项 [英] Removing duplicates from array based on a property in Objective-C

查看:30
本文介绍了基于Objective-C中的属性从数组中删除重复项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含自定义对象的数组.每个数组项都有一个名为name"的字段.现在我想根据这个名称值删除重复的条目.

I have an array with custom objects. Each array item has a field named "name". Now I want to remove duplicate entries based on this name value.

我应该如何实现这一目标?

How should I go about achieving this?

推荐答案

您可能必须自己实际编写此过滤方法:

You might have to actually write this filtering method yourself:

@interface NSArray (CustomFiltering)
@end

@implementation NSArray (CustomFiltering) 

- (NSArray *) filterObjectsByKey:(NSString *) key {
   NSMutableSet *tempValues = [[NSMutableSet alloc] init];
   NSMutableArray *ret = [NSMutableArray array];
   for(id obj in self) {
       if(! [tempValues containsObject:[obj valueForKey:key]]) {
            [tempValues addObject:[obj valueForKey:key]];
            [ret addObject:obj];
       }
   }
   [tempValues release];
   return ret;
}

@end

这篇关于基于Objective-C中的属性从数组中删除重复项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆