0

我正在尝试根据字典中的特定键对 NSDictionaries 的 NSArray 进行重复数据删除。我所拥有的看起来像这样:

NSDictionary *person1 = [NSDictionary dictionaryWithObjectsAndKeys:@"John", @"firstName", @"Smith", "lastName", @"7898", @"employeeID"];
NSDictionary *person2 = [NSDictionary dictionaryWithObjectsAndKeys:@"Eric", @"firstName", @"Johnson", "lastName", @"1718" @"employeeID"];
NSDictionary *person3 = [NSDictionary dictionaryWithObjectsAndKeys:@"John", @"firstName", @"Smith", "lastName", @"1153", @"employeeID"];

NSMutableArray *personArray = [NSArray arrayWithObjects:person1, person2, person3, nil];

// insert some code to de-dupe personArray based SOLELY on the firstName and lastName keys

请注意如何有两个同名但 ID 不同的员工。我想做的只是取回一个只有 person1 和 person2 的新数组,因为 person3 具有相同的数据——我只是不关心这个特定问题中的“employeeID”值。

有任何想法吗?谢谢!

-马特

4

2 回答 2

5

添加一个继承自 NSDictionary 的 Person 类并实现 isEqual:忽略 ID 键,将您的字典转换为此类,然后从您的 Person 对象创建一个 NSSet。

于 2010-10-21T16:56:02.327 回答
0

在这种情况下,我将创建一个临时 NSMutableDictionary 并将每个 personX 字典添加为对象,并将其“firstName”的值作为键。这样,如果将另一个具有相同名称的 personX 添加到临时目录中,则将替换 personX 字典。然后使用-allValues从临时字典中获取数组。

于 2010-10-21T16:44:21.540 回答