У меня есть вопрос по NSMutableDictionary. Я читал, что они являются лишь оболочкой для хэш-карты, поэтому их использование в упорядоченном списке не рекомендуется.
Но я должен его использовать, поэтому начались проблемы ...
Я сохраняю результат Json (после обращения к URL) в NSMutableDictionary, а затем у меня есть два разных «print»:
- если я пытаюсь распечатать словарь из консоли с помощью команды "po 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", но это не вопрос: Я хочу понять, почему у меня есть две разные печати , один из "для оператор "и другой из" по команде ".