我想知道如何反转 NSDictionary。
我见过一些疯狂的代码,比如
NSDictionary *dict = ...;
NSDictionary *swapped = [NSDictionary dictionaryWithObjects:dict.allKeys forKeys:dict.allValues];
根据文档,这是不安全的,因为不能保证 allValues
和 allKeys
的顺序。
最佳答案
NSDictionary *dict = ...;
NSMutableDictionary *swapped = [NSMutableDictionary new];
[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) {
swapped[value] = key;
}];
请注意,这些值还应符合 NSCopying
协议(protocol)。
关于objective-c - 如何在 NSDictionary 中交换键和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32243455/