title: NSUserDefaults problem
body: <p>I have this in my app delegate <code>applicationDidFinishLaunching</code> method:</p>
  
  <pre><code>NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  if([defaults objectForKey:@"AcceptTC"] == nil){
      NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"NO" forKey:@"AcceptTC"];
      [defaults registerDefaults:appDefaults];
  }
  </code></pre>
  
  <p>and I have this in my RootViewController <code>viewDidLoad</code> method:</p>
  
  <pre><code>NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  if(![defaults boolForKey:@"AcceptTC"]){
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Notice" message:@"By using this application you agree to be bound by the Terms and Conditions as stated within this application." delegate:self cancelButtonTitle:@"No Deal" otherButtonTitles:@"I Understand",nil];
      [alert show];
      [alert release];
  }
  </code></pre>
  
  <p>and my alert view delegate does this:</p>
  
  <pre><code>if(buttonIndex == 0){
              exit(0);
          }
          else{
              NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
              [defaults setObject:@"YES" forKey:@"AcceptTC"];
          }
  </code></pre>
  
  <p>However when I click "I understand" (button index 1) and then restart the application I still see the alert view! Even though I've definiely set the value to YES.</p>
  
  <p>I have no idea how to change this. :( I only want it to show the first time a user starts the application - i don't want to keep showing it every time they want to use it.</p>
  
  <p>Thanks</p>