iphone - 如何就地交换 `NSMutableDictionary` 键和值?

标签 iphone ios nsmutabledictionary

我有一个 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/

相关文章:

iphone - 苹果游戏中心 API

iphone - 母语国家列表

iOS:从命令行运行单个单元测试

iphone - 将导航栏剪辑到 ScrollView

iphone - CIFilter filterWithName :keysAndValues: set keysAndValues from NSDictionary

ios - 如何使用 Spotify Web API 获取当前播放/最近播放的歌曲

ios - 是否可以将具有重复键的值添加到 NSDictionary?

ios - 是否有 NSMapTable 的 NSMutableArray 版本?

ios - 无法将 UIImage 存储在 NSMutableDictionary 中

iphone - 我的单元格中有一个我需要访问的按钮...我如何访问它?