NSMutableDictionary问题

时间:2012-08-07 11:13:18

标签: iphone ios nsmutabledictionary

在我的应用程序中,我从用户那里获取输入并将其存储在NSMutableDictionary并成功获取结果。

但我对控制台上的输出打印感到困惑。 这不是订单

这个输出背后的原因是什么?

由于

enter image description here

我使用以下代码存储来自textField的输入并将其打印在Console上。

-(IBAction)doneButtonClicked:(id)sender
{
 NSArray *arr=[NSArray arrayWithObjects:@"firstName",@"middleName",@"lastName",@"address",@"email",@"phone",nil];

 DataClass *obj=[DataClass getInstance];  

 obj.personelInfo=[NSMutableDictionary dictionary];

 for (int a=1; a<=personelInfoCounter; a++) {


    UITextField *textField = (UITextField*)[self.view viewWithTag:a];




    NSString *fieldValue = textField.text;


    if(fieldValue != nil)
    {
    [obj.personelInfo setObject:fieldValue forKey:[arr objectAtIndex:a-1]];
    }
    else
    {
       [obj.personelInfo setObject:@"" forKey:[arr objectAtIndex:a-1]]; 
    }

}



NSLog(@"Final value of Personal Info Dictionary is ----------------------------------:");

for (id key in obj.personelInfo) {

    NSLog(@"%@      ,      %@", key, [obj.personelInfo objectForKey:key]);

}
}

控制台上的输出是

enter image description here

2 个答案:

答案 0 :(得分:1)

  

它不合适。这个输出背后的原因是什么?

NSDictionaryNSMutableDictionary不会维护您放入其中的内容的顺序。未定义枚举字典时您将获得的顺序。

答案 1 :(得分:0)

正如瓦特森所说的那样“字典中没有订购”。您可以根据键值制作自己的逻辑。

了解更多信息https://developer.apple.com/library/mac/#documentation/cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html