【问题标题】:how to print the keys in the order in nsmutabledictionary ios如何在nsmutabledictionary ios中按顺序打印键
【发布时间】:2014-07-29 16:05:54
【问题描述】:

我收到来自服务器的响应,并将其保存在这样的字典中,为此我使用 NSMutableArray

{
    a = "";
    b = "";
    c = "";
    d = "";
}

我想按照从服务器返回的顺序打印密钥。

但是当我打印密钥时,顺序是:c, d, a, b

我使用的代码是:

for(id key in dic){
    nslog(@"%@",key);
}

我怎样才能正确地做到这一点?

【问题讨论】:

  • 一个 NS(Mutable)Dictionary 没有“顺序”。 (并且 JSON“对象”中的元素也没有排序。)

标签: ios objective-c sorting nsmutabledictionary


【解决方案1】:

本质上NSDictionaryNSMutableDictionary 是无序的。你不能这样做。我建议将密钥存储到 NSArrayNSMutableArray 中,然后按顺序打印出数组的元素。

【讨论】:

  • 对于数组中的排序,我没有特定的排序顺序。我只想打印从服务器返回的密钥。
  • 因此,按照返回的顺序将键添加到数组中。
  • @user2413621 很确定你可以自己解决这个问题,考虑到你已经弄清楚了 JSON 解析。
  • @user2413621 我同意 duci9y 你可以自己解决这个问题。我不知道您的应用程序是如何工作的以及您是如何接收信息的。我已经清楚地回答了你的问题:NSDicitonarys 是无序的,你需要使用 NSArray 来代替。
  • 看到网上的所有答案,我有点困惑,请您帮忙
【解决方案2】:

尽量将响应保存在 NSMutableArray 中,其中每个元素都是一个简单的 NSDictionary,只有一个键值对。

【讨论】:

    【解决方案3】:

    NSMutableDictionary 是无序集合。您可以创建自己的有序字典子类,并将键按顺序添加到数组中。

    看看here 很好地解释了如何制作ordered dictionary。你也可以使用这个link

    【讨论】:

      【解决方案4】:

      NSDictionaryNSMutableDictionary 是无序集合。

      但你可以使用OrderedDictionary

      【讨论】:

        猜你喜欢
        • 2022-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-22
        • 2018-09-05
        • 2016-04-22
        • 2017-10-09
        • 1970-01-01
        相关资源
        最近更新 更多