4

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

为了存储这些数据,目前我有一个参考类,它返回一个 NSDictionary,其中帧 id 作为键,单词/短语作为对象。由于我需要在两个方向上查找定义,目前我有第二种方法返回字典'switched round',所以单词/短语是关键。

我的问题是是否有更好的方法来表示这些数据。理想情况下会有类似于 NSDictionary 的东西,不同之处在于键和值都必须是唯一的,并且您可以同时查找“objectForKey:”和“keyForObject:”

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

有任何想法吗?干杯。

4

1 回答 1

8

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

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

唯一需要注意的是对象和密钥必​​须符合NSCopying协议。

于 2010-02-15T22:56:18.783 回答