title: To detect the first run of Application
body: <p>I want to show a help overlay when a user runs my application for the first time.</p>
  
  <p>To do this, I'm using the following code in<code>didFinishLaunching</code>:</p>
  
  <pre><code>if(![[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] containsObject:@"IPHONEFIRSTRUN"])
      [[NSUserDefaults standardUserDefaults]setBool:TRUE forKey:@"IPHONEFIRSTRUN"];
  </code></pre>
  
  <p>In the view controller, I have:</p>
  
  <pre><code>if ([[NSUserDefaults standardUserDefaults]boolForKey:@"IPHONEFIRSTRUN"]==TRUE) {
      [self HelpOverlayIphone];
      [[NSUserDefaults standardUserDefaults]setBool:FALSE forKey:@"IPHONEFIRSTRUN"];
  }
  </code></pre>
  
  <p>However, it shows the overlay on the second use as well. How can I fix this? Any help is appreciated.</p>