在我的应用程序中,我从用户那里获取输入并将其存储在NSMutableDictionary
并成功获取结果。
但我对控制台上的输出打印感到困惑。 这不是订单。
这个输出背后的原因是什么?
由于
我使用以下代码存储来自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]);
}
}
控制台上的输出是
答案 0 :(得分:1)
它不合适。这个输出背后的原因是什么?
NSDictionary
和NSMutableDictionary
不会维护您放入其中的内容的顺序。未定义枚举字典时您将获得的顺序。
答案 1 :(得分:0)
正如瓦特森所说的那样“字典中没有订购”。您可以根据键值制作自己的逻辑。