我创建了一个NSMutableDictonary
。
问题在于我将所有键按字母顺序排序。为什么会这样?
我今天刚刚注意到这一点(之前从未检查过)。这是NSMutableDictonary
的实际实施吗?有什么方法可以按照我声明的顺序获取键/值吗?
以下是截图中的代码:
- (IBAction)OnBtnSubmit:(id)sender {
NSString *strUid=[[NSUserDefaults standardUserDefaults] objectForKey:@"UID"];
NSString *picData=[self imageToNSString:ProfileImage.image];
NSString *strComment=_commentTxt.text;
NSString *strUnit=_unitTxt.text;
NSMutableDictionary *parameters =[NSMutableDictionary dictionaryWithObjectsAndKeys:strUid,@"uid",strComment,@"comment",strUnit,@"unit_donate",@"hi",@"image",nil];
NSLog(@"parameters : %@",parameters);
我担心的是,我可以按照我声明的顺序获取键/值吗?
如下所示:
NSMutableDictionary *parameters =[NSMutableDictionary dictionaryWithObjectsAndKeys:strUid,@"uid",strComment,@"comment",strUnit,@"unit_donate",@"hi",@"image",nil];
{
uid = 85;
comment= test;
unit_donate = 1;
image=hi;
}
我需要这个确切的顺序,因为在网络端有一个数组存储所有这些密钥的值。我需要确保image
始终处于第4位。
但我很想知道,我已经记录了我创建的字典;为什么它按字母顺序显示?这是我的字典中的实际顺序还是有其他原因?
答案 0 :(得分:2)
是的,就是这样。但无论顺序是什么,它都不应该与你的逻辑有关,因为你总是要在密钥上获取值而不是基于顺序。
答案 1 :(得分:0)
我很确定词典没有跟踪输入顺序。你如何输出字典,循环键或只打印字典?
如果你知道要检索对象的顺序,你可以创建自己的keys数组版本并循环遍历它以按照你想要的顺序从字典中提取对象
有关详细信息,请查看dictionary works
的方式