避免在 NSDictionary 中排序

Posted

技术标签:

【中文标题】避免在 NSDictionary 中排序【英文标题】:Avoiding sorting in NSDictionary 【发布时间】:2010-04-21 09:03:48 【问题描述】:

我正在使用 NSDictionary 并且我观察到字典中的对象是根据键自动排序的,所以我的问题是如何避免这种排序,任何可用于设置它的标志,所以我得到相同的对象我输入的顺序。

我知道你可能在想它在字典中有什么不同,因为我们检索键的值,但我首先得到 allKeys,我从中接收键数组,这个顺序是我需要它在我输入的顺序就像在 NSArray 中一样。

【问题讨论】:

【参考方案1】:

我猜在 NSDictionary 中不会有控制排序的方法,因为 'NSDictionary' 是一个哈希表,它使用哈希函数来选择存储值的位置(以便快速访问)。

要自定义字典,您可以使用 CFDictionaryRef 在那里您可以编写自定义回调。您可以编写自己的 CFDictionaryHashCallBack 函数来计算存储位置。 CFDictionary 与 NSDictionary 是“免费桥接”的。问候Devara Gudda

【讨论】:

以上是关于避免在 NSDictionary 中排序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中获取音频文件的持续时间?

在 Swift 中对 NSDictionary 对象的 NSArray 进行排序

Foundation框架中的动态字典

使用值对 NSDictionary 的 NSArray 进行排序

无法在表视图中列出数据 [关闭]

JSON数据,编辑方式