title: NSDictionaryM setObject:forKey: EXC_BAD_ACCESS crash
body: <p>Crashlog:</p>
  
  <pre><code>Crashed: com.apple.main-thread
  EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x12121212
  
  libobjc.A.dylib - objc_msgSend - isEqual:
  CoreFoundation  - -[__NSDictionaryM setObject:forKey:]
  </code></pre>
  
  <p>Code:</p>
  
  <pre><code>if (object) {
      [_objects setObject:object forKey:key];
  }
  </code></pre>
  
  <p>When init of _objects happens earlier in code:</p>
  
  <pre><code>- (id)init {
       self = [super init];
       if (self) {
           _objects = [[NSMutableDictionary alloc] init];
       }
       return self;
  }
  </code></pre>
  
  <p>Object can be nil value, thats why I'm checking if it exist:</p>
  
  <pre><code>AFHTTPRequestOperation *object = [[AFHTTPRequestOperation alloc] initWithRequest:request];
  </code></pre>
  
  <p>I'm not sure what exactly can cause it. Crash happens very rarely, I'm unable to reproduce it, however a few users got it. I assume something got deallocated, could it be that <code>_objects</code> is nil? Or whole controller got deallocated? Why I can see <code>isEqual</code> in the log?</p>
  
  <p>Can this fix the issue?</p>
  
  <pre><code>if (object &amp;&amp; _objects) {
      [_objects setObject:object forKey:key];
  }
  </code></pre>