реверсирование значения ключа не очень хорошая идея, потому что не все значения могут быть ключами.
Вы можете сделать это с помощью:
// dict - оригинальный словарь, newDict - новый словарь с дубликатами.
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