title: iOS KVO - Cannot remove an observer
body: <p>I have a simple Viewcontroller that is KVO compliant and has the following in it:</p>
  
  <pre><code>  - (void) viewDidAppear:(BOOL)animated
      {
          [super viewDidAppear:animated];
  
  
  
          [self addObserver:self forKeyPath:@"importStuff" options:0 context:NULL];
          [self addObserver:self forKeyPath:@"importStuffFailed" options:0 context:NULL];
          }
  
      - (void) viewWillDisappear:(BOOL)animated
      {
          [super viewWillDisappear:animated];
  
          [self removeObserver:self forKeyPath:@"importStuff"];
          [self removeObserver:self forKeyPath:@"importStuffFailed"];
        }
  </code></pre>
  
  <p>the issue im having is that sometimes user are reporting the following error:</p>
  
  <pre><code>Cannot remove an observer &lt;MyViewController 0x145d0c8d0&gt; for the key path "importStuff" from &lt;MyViewController 0x1741b2280&gt; because it is not registered as an observer.
  </code></pre>
  
  <p>the addObserver call is not called anywhere else in code. is it something about the life cycles im missing ? isn't viewDidAppear guaranteed to be called once (so it should register the keys right ?)</p>