NSDictionary的唯一键和唯一值的替代品?

wip*_*lar 4 cocoa objective-c nsdictionary

我正在编写一些Cocoa类来解析MP3文件中的ID3标签.为了使它们尽可能易于使用,我允许选项通过实际的ID3帧ID("TCON","TPE1","TALB"等)或等效的单词/短语("流派","艺术家","专辑"等)

为了存储这些数据,目前我有一个引用类,它返回一个NSDictionary,其中帧id作为键,单词/短语作为对象.由于我需要在两个方向上查找定义,目前我有第二种方法返回字典'切换圆',因此单词/短语是键.

我的问题是,是否有更好的方法来表示这些数据.理想情况下会有类似于NSDictionary的东西,区别在于键和值都必须是唯一的,你可以查找"objectForKey:"和"keyForObject:"

我自己可以为此编写一个类,但是我可能会失去一些效率,如NSDictionary文档中描述的哈希表...而且我宁愿在整个实现中保持类的数量尽可能低.

有任何想法吗?干杯.

Dav*_*ong 8

有趣的你应该问这个......

CHDataStructures框架 的作者Quinn Taylor 上周刚刚CHBidirectionalDictionary在框架中添加了一个.它允许您按键查找对象,并按对象查找键.它基本上是两个可变字典的包装器,因此保证了与常规字典相同的查找时间.

唯一要注意的是,无论是对象和键必须符合NSCopying协议.