title: Error when converting date string to NSObject
body: <p>I'm sending details to a server which requires that I convert a date string into an NSDate object. The dictionary that will carry this object is declared like this</p>
  
  <pre><code>NSMutableDictionary *detailsRequest = [NSMutableDictionary dictionary];
  </code></pre>
  
  <p>Then the code which converts the date string to an object looks like this</p>
  
  <pre><code>[_dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
  [_dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"];
  [_dateFormatter setAMSymbol:@"am"];
  [_dateFormatter setPMSymbol:@"pm"];
  [detailsRequest setObject:[_dateFormatter stringFromDate:[_dateFormatter dateFromString:val]] forKey:NDUserServerDateOfBirthKey];
  </code></pre>
  
  <p>The key NDUserServerDateOfBirthKey is declared as a constant like this</p>
  
  <pre><code>NSString * const NDUserServerDateOfBirthKey     = @"dob";
  </code></pre>
  
  <p>The value for val is always '09/08/1987' and when it hits the last line it throws a SIGABRT error which says</p>
  
  <pre><code>2018-08-23 10:33:04.612769+0100 ClientCore[353:36543] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: object cannot be nil (key: dob)'
  </code></pre>
  
  <p>I've tried reducing the _dateFormatter to just [_dateFormatter setDateFormat:@"yyyy-MM-dd"]; but it still crashes with the same error. My string date always has a value so what is it I'm doing wrong?</p>