title: Inconsistency in Category extensions iOS 10+
body: <p>I have a very strange issue that I cannot seem to see the cause of.</p>
  
  <p>I have a category extension on NSDictionary that has a method called title. The method works as follows:</p>
  
  <pre><code>- (NSString*)title {
      return self[@"title"];
  }
  </code></pre>
  
  <p>What this allows me to do, is have a conveniece method on a NSDictionary to return a title.</p>
  
  <p>Here is an example of use:</p>
  
  <pre><code>NSDictionary *config = [mConfigManager currentConfig];
  
  if ([config title]) {
  
      return [config title];
  }
  return @"";
  </code></pre>
  
  <p>Now this is where things get strange. On iOS 10 the title method <strong>sometimes</strong> returns nil. In cases where this returns nil, a manual call to <code>config[@"title"]</code> returns the value. As a result I have adjusted my code as follows:</p>
  
  <pre><code>NSDictionary *config = [mConfigManager currentConfig];
  
  if ([config title]) {
  
      return [config title];
  }
  else if(config[@"title"])
  {
      return config[@"title"];
  }
  return @"";
  </code></pre>
  
  <p>With the above code, this always returns the title (if it exists). However it sometimes only works for the <code>else if</code> case and not the category version.</p>
  
  <p><strong>So the question is:</strong></p>
  
  <p>Why would the category not return a value when it is doing exactly the same thing as the manual call? </p>
  
  <p>What makes this even stranger is that is does sometime work: See the following log output:</p>
  
  <p><strong>first click</strong></p>
  
  <pre><code>(lldb) po [config title]
  Joe Bloggs
  </code></pre>
  
  <p><strong>second click</strong></p>
  
  <pre><code>(lldb) po [config title]
  nil
  (lldb) po config[@"title"]
  Joe Bloggs
  </code></pre>
  
  <p><strong>Note:</strong> The above logs both ran during the same instance of the app, triggered by selecting a table view cell. So this eliminates any cases where a deallocation or re-allocation could occur.</p>
  
  <p>One thing I have noticed however, is that the console will not output the contents of <code>config</code> and instead returns the following error:</p>
  
  <pre><code>&lt;object returned empty description&gt;
  </code></pre>
  
  <p>The variable view however fully shows the object and all variables. The object is defined as <code>NSDictionaryM</code> in the variable list.</p>
  
  <p>Any help with this would be massively appreciated.</p>
  
  <p>Thanks in advance</p>