不要按字母顺序添加NSMutabledictionary值

时间:2015-05-05 05:48:58

标签: ios nsmutabledictionary

我正在尝试使用键值数组将数据添加到字典中,但字典值是根据键字母顺序排列的

我的值和键数组包含:

myValueArray ={[orange,apple],
               [ford,toyota,lexus]}
myKeyArray ={[fruits],[cars]}

我正在使用

向NSMutabledictionary添加键和值
myDictionary = [[NSMutableDictionary alloc]initWithObjects:myValueArray forKeys:MainDelegate.myKeyArray];

myDictionary应该是

  myDictionary = { Fruits =(orange,apple);
                   cars =(ford,toyota,lexus);}

但它按键的字母顺序添加,看起来像

 myDictionary = { cars =(ford,toyota,lexus);
                     Fruits =(orange,apple);}

有没有办法在字典中添加键值对,因为它没有任何排序。

我正在尝试填充分组的uitableview。因为键被用作部分所有内容看起来像联系人应用程序,其中部分及其对应的值按字母顺序排列。但是我需要先显示最近的部分(数组中的第一部分)。

2 个答案:

答案 0 :(得分:2)

如果您需要保存初始订单,则必须使用NSMutableArray

NSMutableDictionary旨在以最快的方式访问密钥的值,并将密钥排序有助于此。

以下是如何声明字典和数组以及如何将它们用于分组tableView:

    NSDictionary *myDictionary = @{ @"cars": @[@"ford" , @"toyota", @"lexus"], @"Fruits": @[@"orange", @"apple"]};
    NSArray *keysArray = @[ @"Fruits", @"cars"];

    // first section
    NSString *sectionName = keysArray[0];
    NSArray *sectionArray = myDictionary[sectionName];

    // second section
    sectionName = keysArray[1];
    sectionArray = myDictionary[sectionName];

答案 1 :(得分:0)

NSMutableDictionary没有与之关联的任何排序,当您在日志中打印时,它将按排序顺序显示。

您可以管理单独的NSMutableArray,并按照您要从key获取的顺序排列NSMutableDictionary

这可以是根据您的要求存储值和获取的最简单方法。

愿这对你有所帮助。