title: Terminating app due to uncaught exception 'NSUnknownKeyException' : iOS app crash
body: <p>I'm a beginner programmer working on iPhone apps. I was wondering if anybody could help me with a bug in my app. When programming on XCode I found that my app suddenly crashed on launch after adding a little more code. The output panel showed the following error:</p>
  
  <blockquote>
    <p><strong>* Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key play.'
        *</strong> First throw call stack:
        (0x1c91012 0x10cee7e 0x1d19fb1 0xb7ae41 0xafc5f8 0xafc0e7 0xb26b58 0x230019 0x10e2663 0x1c8c45a 0x22eb1c 0xf37e7 0xf3dc8 0xf3ff8 0xf4232 0x433d5 0x4376f 0x43905 0x8eceab6 0x4c917 0x1096c 0x1194b 0x22cb5 0x23beb 0x15698 0x1becdf9 0x1becad0 0x1c06bf5 0x1c06962 0x1c37bb6 0x1c36f44 0x1c36e1b 0x1117a 0x12ffc 0x222d 0x2155)
        libc++abi.dylib: terminate called throwing an exception
        (lldb) </p>
  </blockquote>
  
  <p>The code that shows up when the app terminates is as follows</p>
  
  <pre><code>#import &lt;UIKit/UIKit.h&gt;
  #import "CIAAppDelegate.h"
  
  int main(int argc, char *argv[])
  {
      @autoreleasepool {
          return UIApplicationMain(argc, argv, nil, NSStringFromClass([CIAAppDelegate class]));
      }
  }
  </code></pre>
  
  <p>My ViewController.h shows:</p>
  
  <pre><code>#import &lt;UIKit/UIKit.h&gt;
  
  @interface CIAViewController : UIViewController {
      IBOutlet UILabel *cruzia;
      IBOutlet UILabel *textarea;
      IBOutlet UIButton *playbtn;
      IBOutlet UIButton *tutorialbtn;
      IBOutlet UIButton *optionsbtn;
      IBOutlet UIButton *trainingbtn;
      IBOutlet UIButton *back;
  }
  
  -(IBAction)press;
  -(IBAction)press2;
  -(IBAction)press3;
  -(IBAction)press4;
  -(IBAction)press5;
  </code></pre>
  
  <p>Also my ViewController.m shows</p>
  
  <pre><code>#import "CIAViewController.h"
  
  @interface CIAViewController ()
  @end
  
  @implementation CIAViewController
  
  -(IBAction)press {
      cruzia.hidden = 0;
      textarea.hidden = 0;
      playbtn.hidden = 1;
      tutorialbtn.hidden = 1;
      optionsbtn.hidden = 1;
      trainingbtn.hidden = 1;
      back.hidden = 0;
      cruzia.text = @"Play";
      textarea.text = @"Hello! You are playing the game of Cruzia!";
  }
  
  -(IBAction)press2 {
      cruzia.hidden = 0;
      textarea.hidden = 0;
      playbtn.hidden = 1;
      tutorialbtn.hidden = 1;
      optionsbtn.hidden = 1;
      trainingbtn.hidden = 1;
      back.hidden = 0;
      cruzia.text = @"Tutorial";
      textarea.text = @"Welcome! You are watching the Cruzia tutorial!";
  }
  
  -(IBAction)press3 {
      cruzia.hidden = 0;
      textarea.hidden = 0;
      playbtn.hidden = 1;
      tutorialbtn.hidden = 1;
      optionsbtn.hidden = 1;
      trainingbtn.hidden = 1;
      back.hidden = 0;
      cruzia.text = @"Options";
      textarea.text = @"You are now in the Options screen. You can edit the settings of the game!";
  }
  
  -(IBAction)press4 {
      cruzia.hidden = 0;
      textarea.hidden = 0;
      playbtn.hidden = 1;
      tutorialbtn.hidden = 1;
      optionsbtn.hidden = 1;
      trainingbtn.hidden = 1;
      back.hidden = 0;
      cruzia.text = @"Training";
      textarea.text = @"This is the training area. You can improve your Cruzia skills here!";
  }
  
  -(IBAction)press5 {
      cruzia.hidden = 0;
      textarea.hidden = 0;
      playbtn.hidden = 0;
      tutorialbtn.hidden = 0;
      optionsbtn.hidden = 0;
      trainingbtn.hidden = 0;
      back.hidden = 1;
      cruzia.text = @"Cruzia";
  }
  
  
  - (void)viewDidLoad
  {
      textarea.hidden = 1;
      playbtn.hidden = 0;
      tutorialbtn.hidden = 0;
      optionsbtn.hidden = 0;
      trainingbtn.hidden = 0;
      back.hidden = 1;
      cruzia.text = @"Cruzia";
      [super viewDidLoad];
  }
  
  @end
  </code></pre>
  
  <p>I am sorry to waste your time but I have had this error for a long time and would like it if you had a solution.</p>