NSMutableDictionary 是否总是按字母顺序对键进行排序?
Is NSMutableDictonary always sorting the keys in alphabetical order?
我创建了一个NSMutableDictonary
。
问题是我将所有键按字母顺序排序。为什么会这样?
我今天才注意到这一点(以前从未检查过)。这是 NSMutableDictonary
的实际实现吗?有什么方法可以按照我声明的顺序获得 key/values 吗?
下面是截图中的代码:
- (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);
我担心的是,我可以按照我申报的顺序拿到key/values吗?
如下所示:
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
始终处于第 4 个位置。
但我很想知道,我已经记录了我创建的词典;为什么它按字母顺序显示?这是我字典的实际顺序还是有其他原因?
是的,会是这样的。但是无论顺序是什么,它都不应该关心你的逻辑,因为你总是要根据键而不是基于顺序来获取值。
我很确定字典不会跟踪输入顺序。您如何输出字典、循环键或只打印字典?
如果您知道要检索对象的顺序,则可以创建自己版本的键数组并循环遍历它,以按照您想要的顺序从字典中提取对象
有关更多详细信息,请查看 dictionary works
我创建了一个NSMutableDictonary
。
问题是我将所有键按字母顺序排序。为什么会这样?
我今天才注意到这一点(以前从未检查过)。这是 NSMutableDictonary
的实际实现吗?有什么方法可以按照我声明的顺序获得 key/values 吗?
下面是截图中的代码:
- (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);
我担心的是,我可以按照我申报的顺序拿到key/values吗?
如下所示:
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
始终处于第 4 个位置。
但我很想知道,我已经记录了我创建的词典;为什么它按字母顺序显示?这是我字典的实际顺序还是有其他原因?
是的,会是这样的。但是无论顺序是什么,它都不应该关心你的逻辑,因为你总是要根据键而不是基于顺序来获取值。
我很确定字典不会跟踪输入顺序。您如何输出字典、循环键或只打印字典?
如果您知道要检索对象的顺序,则可以创建自己版本的键数组并循环遍历它,以按照您想要的顺序从字典中提取对象
有关更多详细信息,请查看 dictionary works