如何更改NSDictionary中键的顺序

时间:2013-06-19 09:44:42

标签: cocoa nsarray nsdictionary

我有一个由字典数组组成的可变数组:

(
      {
        A = Mango;
        B = "John";
        C = SLOVAKIA;
        D = 01/27/13;
        E = 2000;
    },
        {
        A = Banana;
        B = "Johny";
        C = THAILAND;
        D = 02/27/13;
        E = 4000;
    },
        {
        A = Orange;
        B = "Lezin";
        C = US;
        D = 03/27/13;
        E = 6000;
    }
)

现在我想基于键对数组进行排序,以便键的顺序变为BECAD,既不是升序也不是降序,它是随机顺序。 预期产出如下:

(
      {
        B = "John";
        E = 2000;
        C = SLOVAKIA;
        A = Mango;
        D = 01/27/13;
    },
        {
        B = "Johny";
        E = 4000;
        C = THAILAND;
        A = Banana;
        D = 02/27/13;
    },
        {
        B = "Lezin";
        E = 6000;
        C = US;
        A = Orange;
        D = 03/27/13;
    }
)

我该怎么做?

2 个答案:

答案 0 :(得分:1)

保证字典键没有固有的顺序。在实践中,它们似乎是FILO订单。但这是一个实现细节。

你应该使用像NSArrayController这样的代理来获得你想要的排序。

答案 1 :(得分:-1)

NSMutableDictionary总是以无序方式返回键。

如果我们真的想要维护订单,那么我们可能需要在Keys之前/之后添加01,02,03序列号,以按我们想要的顺序对它们进行排序,然后我们需要修剪数字部分字符串并使用它。

相关问题