我试图根据词典中的特定键来删除NSArray的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”值。
有什么想法吗?谢谢!
-Matt
答案 0 :(得分:5)
添加一个继承自NSDictionary的Person类并实现isEqual:忽略ID键,将字典转换为此类,然后从Person对象创建一个NSSet。
答案 1 :(得分:0)
在这种情况下,我将创建一个临时的NSMutableDictionary,并将每个personX字典添加为对象,并将其“firstName”的值添加为键。这样,如果将另一个具有相同名称的personX添加到临时字符,则会替换personX字典。然后使用 -allValues 从临时字典中获取数组。