删除NSdictionary中的重复项

时间:2010-03-17 13:21:34

标签: iphone duplicates nsdictionary

有没有办法从NSDictionary中删除重复(键值)对?

编辑: 我的描述有误导性,我有重复对,例如
键1,值1
键1,值1
KEY2,值2
键1,值1
等。

3 个答案:

答案 0 :(得分:2)

反转键值并不是一个好主意,因为并非所有值都可以是键。  你可以用:

// dict是原始字典,newDict新字典withot duplicates。

NSMutableDictionary * newDict = [NSMutableDictionary dictionaryWithCapacity:[dict count]];
for(id item in [dict allValues]){
    NSArray * keys = [dict allKeysForObject:item];
    [newDict setObject:item forKey:[keys objectAtIndex:0]];
}

yuo也可以使用lastObject而不是objectAtIndex:0来为dup对象留下其他键

答案 1 :(得分:1)

一种方法是通过值/键将键/值对放入字典中,然后将其转换回键/值。

答案 2 :(得分:0)

我想不出内置方法。

如果迭代这些值,allKeysForObject:将为每个值提供一个键数组,如果您有多个键,则该值具有重复值。