我有一些关于NSMutableDictionary的问题。我读过它们只是散列表的一个包装,所以不鼓励它们用于有序列表。NSMutableDictionary,与控制台和代码不同的打印
但我不得不使用它,这样的问题开始......
我救一个JSON的结果(到URL中的呼叫后)在的NSMutableDictionary,然后我有两个不同的“打印”:
- ,如果我尝试打印字典从命令“宝myDictionary”控制台我有一个顺序在每一个要素(原JSON的顺序)
- 如果我创建一个简单的“的声明”和打印myDictionary,我有不同的顺序。
这怎么可能?他们不应该有相同的顺序吗?
谢谢大家!
编辑:这是代码的一个小例子:
NSMutableDictionary *myDictionary = [--{RECEIVED FROM ANOTHER CALL}--];
NSMutableDictionary *tmp = [NSMutableDictionary dictionaryWithCapacity:[myDictionary count]];
for(NSString *key in myDictionary) {
NSLog(@"%@", key);
NSObject *object = [[NSObject alloc] init]
/* some operation in the code with object */
[tmp setObject:object forKey:key];
}
经过了“声明”,这是发生了什么事:
- ,如果我看到所有的日志,我收到东西(对例如,如果myDictionary的名称为“星期六,星期一,星期五......”的日期的名称)
- 如果我在此处插入断点并尝试使用命令“po myDictionary”从控制台打印某些内容,我有另一个命令,(“周日,周二,星期一,...“)
问题是:为什么?
编辑2:我知道存在一个系统有一个“OrderedDictionary”,但它不是一个问题:我想知道为什么我有两个从“for语句”不同的打印,一个和另一个来自“po命令”。
你能展示什么正在打印?你是如何调用印刷品的? –
不鼓励使用它们用于有序列表,因为它们不保证特定的顺序。 –
@Terry:是的,我知道他们的使用ID不鼓励,但这不是问题。 –