Nov 16

Doing some iPhone development and this error really caught me out for a while:

2009-11-16 21:02:48.387 Pickers[3779:207] *** Terminating app due to uncaught
exception 'NSUnknownKeyException', reason: '[<UIViewController 0x381d740>
setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key datePicker.'
2009-11-16 21:02:48.388 Pickers[3779:207] Stack: (

It’s seemed fairly cryptic at the time. I had created a Tab Bar Controller and for each tab button, i hadn’t set its class identity – so each tab was still declared as a UIViewController instead of the actual Controller class that i had created.

The error comes from the NSKeyValueCoding category which allows you to access properties via setValue: forKey:

Person *aPerson = [[Person alloc] initWithAge: 53];
aPerson.name = @"Steve";
// NOTE: dot notation, uses synthesized setter, equivalent to [aPerson setName: @"Steve"];
NSLog(@"Access by message (%@), dot notation(%@),
    property name(%@) and direct instance variable access (%@)",
      [aPerson name], aPerson.name, [aPerson valueForKey:@"name"], aPerson->name);

So i guess it is just complaining that it can’t find the generated setter method named setDatePicker – because datePicker instance is not on the generic class.

written by admin \\ tags: , ,


One Response to “iPhone: This class is not key value coding-compliant for the key …..”

  1. 1. Daniel Rosenstark Says:

    This helped, unlike all these

    http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=“this+class+is+not+key+value+coding-compliant+for+the+key+datePicker”

    Thank you! “Cryptic” is right on.

Leave a Reply

i3Theme sponsored by Top 10 Web Hosting and Hosting in Colombia