我有一个NSMutableDictionary,我想交换值和键。即,在交换值之后,值变成了键,而与之对应的键变成了值。所有键和值都是唯一的。由于尺寸很大,因此正在寻找就地解决方案。而且,键和值是NSString对象

最佳答案

NSMutableDictionary *d = [NSMutableDictionary dictionaryWithDictionary:@{
                             @"key1" : @"value1",
                             @"key2" : @"value2"}];

for (NSString *key in [d allKeys]) {
    d[d[key]] = key;
    [d removeObjectForKey:key];
}

NSLog(@"%@", d); // => { value1 : key1,
                 //      value2 : key2 }

假设条件
  • 唯一值(因为它们将成为键)
  • 值符合NSCopying(与上面相同)
  • 没有值等于任何键(否则冲突名称将在该过程中丢失)
  • 关于iphone - 如何在适当的位置交换 `NSMutableDictionary`键和值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19387631/

    10-14 22:14