title: why should we define the variables twice for a variable in objective c header file
body: <p>The following is the code from Apple docs. I dont really understand why a variable should be declared twice. Please see the below code. varaible 'passwordItem' has been declared twice. I understand the one with @property - it has the visibility to the outside classes. but why should it be declared under @interface also?</p>
  
  <pre><code>@interface AppDelegate : NSObject &lt;UIApplicationDelegate&gt;
  {
  UIWindow *window;
  UINavigationController *navigationController;
  DetailViewController *detailViewController;
  KeychainItemWrapper *passwordItem;
  KeychainItemWrapper *accountNumberItem;
  }
  
  @property (nonatomic, retain) IBOutlet UIWindow *window;
  @property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
  @property (nonatomic, retain) IBOutlet DetailViewController *detailViewController;
  @property (nonatomic, retain) KeychainItemWrapper *passwordItem;
  </code></pre>