objective-c - cocoa :带枚举键的字典?

标签 objective-c cocoa dictionary enums hashtable

我需要在

  • 键是枚举
  • 值是 NSObject 的一些子类

NSDictionary 在这里不起作用(枚举不符合 NSCopying)。

我也许可以在这里使用 CFDictionaryRef,但我想知道是否有任何其他方法可以实现这一点。

最佳答案

由于枚举是整数,您可以将枚举包装在 NSNumber 中。当您向 map 添加/从 map 中检索某些内容时,您将枚举传递给 NSNumber 构造函数...

假设您有一个枚举,例如...

enum ETest {
    FOO, BAR
};

您可以像这样在 NSDictionary 中使用它...

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject: @"Foo!" forKey:[NSNumber numberWithInt: FOO]];
NSLog(@"getting value for FOO -> %@", 
      [dict objectForKey: [NSNumber numberWithInt: FOO]]);  
[dict release]; 

关于objective-c - cocoa :带枚举键的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187112/

相关文章:

iphone - 发现多个名为 'tag' 的方法结果不匹配

iphone - 如何设置渐变 UITableViewCell 背景?

iphone - 是时候为 Apple 不可知论者学习 Objective-C/Cocoa

iphone - 以数字形式在 UILabel 上显示文本?

ios - UIImagePickerController 添加文本到图像

objective-c - 如何设置 NSSegmentedControl 背景图像?

c# - 将字典转换为 C# 中的对象列表

python - 在 Python 中对嵌套字典进行排序

java - 如何在不覆盖 Sets 的情况下将多个 Maps <Character, Set<String>> 组合在一起

ios - 应用程序是否在测试设备/模拟器/真实应用程序商店安装上运行