避免在 NSDictionary 中排序
我正在使用 NSDictionary,我观察到字典中的对象是根据键自动排序的,所以我的问题是如何避免这种排序,任何可用的标志可以将其关闭,所以我按照我输入的顺序获取对象。
我知道您可能在想它在字典中有何不同,因为我们检索相对于键的值,但我首先获取从中接收键数组的 allKeys,这个顺序是我需要的顺序我就像在 NSArray 中一样输入。
I was using NSDictionary and I observed that the objects in the dictionary are sorted automatically with respect to the keys, so my question is how to avoid this sorting, any flag available to set it off, so I get the object in same order I entered.
I know you may be thinking what difference it makes in dictionary since we retrieve the value with respect to key, but I am first getting allKeys from which I receive Array of keys, this order is what I need it to be in the order of how I entered just as in NSArray.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我猜想 NSDictionary 中不会有控制排序的方法,因为“NSDictionary”是一个哈希表,它使用哈希函数来选择存储值的位置(以便快速访问)。
要自定义字典,您可以使用 CFDictionaryRef 在那里您可以编写自定义回调。您可以编写自己的 CFDictionaryHashCallBack 函数来计算存储位置。 CFDictionary 与 NSDictionary 是“免费桥接”。
问候
Devara Gudda
I guess that there will not be a method to control the sorting in NSDictionary, because 'NSDictionary' is a hash table which uses hash function to chose the place to store the values(for speedy accessing).
To customize dictionary you can use CFDictionaryRef there you can write your custom callback. You can write your own CFDictionaryHashCallBack function to compute the place for storing. CFDictionary is "toll-free bridged" with NSDictionary.
Regards
Devara Gudda