我有一些關於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不鼓勵,但這不是問題。 –