我想知道如何反转NSDictionary。
我看过像
这样的疯狂代码NSDictionary *dict = ...;
NSDictionary *swapped = [NSDictionary dictionaryWithObjects:dict.allKeys forKeys:dict.allValues];
根据文档不安全,因为allValues
和allKeys
的顺序无法保证。
答案 0 :(得分:5)
NSDictionary *dict = ...;
NSMutableDictionary *swapped = [NSMutableDictionary new];
[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) {
swapped[value] = key;
}];
请注意,值也应符合NSCopying
协议。