title: NSMutableDictionary, different print from console and code
body: <p>I have some questione about NSMutableDictionary. I read that they are only a wrapper around an hashmap, so their use for ordered list is discouraged.</p>
  
  <p>But I have to use it, so the problems began...</p>
  
  <p>I save the result of a Json (after a call to an URL) in a NSMutableDictionary and then I have two different "print": </p>
  
  <ul>
  <li>if I try to print the dictionary from console with command "po myDictionary" I have an order (the order of the original json)</li>
  <li>if I create a simple "for statement" and print every elements in myDictionary, I have a different order.</li>
  </ul>
  
  <p>How is it possible? Shouldn't they have the same order? </p>
  
  <p>Thank to all!</p>
  
  <p>EDIT: this is a little example of the code:</p>
  
  <pre><code>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];
  }
  </code></pre>
  
  <p>After the "for statement" this is what happened:</p>
  
  <ul>
  <li>if I see all the logs I receive something (for example if myDictionary has the name of the day I have something like "Saturday, Monday, Friday.....")</li>
  <li>if I insert a breakpoint here and try to print something from console with the command "po myDictionary" I have another order, ("sunday, tuesday, monday, ...")</li>
  </ul>
  
  <p>The question is: why?</p>
  
  <p>EDIT 2: I know that there exists a system to have an "OrderedDictionary", but it isn't the question: <strong>I want to understand why I have two different print</strong>, one from the "for statement" and the other from "po command".</p>