title: App crashes with setValuesForKeysWithDictionary
body: <p>I am using setValuesForKeysWithDictionary to populate my model object . Model object is defined as </p>
  
  <pre><code>@interface Media : NSObject
  {
      NSString *userId;
      NSString *mediaType;
  }
  
  @property(nonatomic,copy) NSString *userId;
  @property(nonatomic,copy) NSString *mediaType;
  </code></pre>
  
  <p>property synthesization looks like ,</p>
  
  <pre><code>@implementation Media
  @synthesize userId;
  @synthesize mediaType;
  </code></pre>
  
  <p>and I initialize the class as follows,</p>
  
  <pre><code>NSMutableDictionary *dic = [NSMutableDictionary new];
  [dic setValue:@"aaa" forKey:@"userId"];
  [dic setValue:@"bbb" forKey:@"mediaType"];
  
  Media *obj = [[Media alloc] init];
  [obj setValuesForKeysWithDictionary:dic];
  </code></pre>
  
  <p>This crashes with the message </p>
  
  <pre><code>'[&lt;Media 0x8a9f280&gt; valueForUndefinedKey:]: this class is not key value coding-compliant    for the key aaa.'
  </code></pre>
  
  <p>How come setValuesForKeysWithDictionary: treat my value as the key ?? or have I misunderstood the purpose of the setValuesForKeysWithDictionary: function ? </p>