我创建了一个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;
}
我需要这个确切的顺序,因为在web端有一个数组存储所有这些键的值。我需要确保image
总是排在第四位。
但是我很想知道,我已经记录了我创建的字典,为什么它会按字母顺序显示呢?这是我的字典保存的实际顺序,还是有其他原因?
发布于 2015-04-02 22:53:32
我很肯定字典没有跟踪输入顺序。你是如何输出字典,循环键,还是只是打印字典?
如果您知道要检索对象的顺序,则可以创建自己版本的键数组,并按所需的顺序循环从字典中提取对象。
有关更多详细信息,请查看字典作品如何
发布于 2015-04-02 22:34:56
是的,会是那样的。但是,不管是什么顺序,它都不应该涉及到您的逻辑,因为您总是要在键而不是基于顺序的基础上获取值。
https://stackoverflow.com/questions/29426581
复制相似问题