title: When should I remove observers? Error about deallocating objects before removing observers
body: <p>I am trying to use key-value observing in one of my classes. I register the observers in the init method and remove/deregister them in the dealloc, but I get the following error which seems to occur before my dealloc method gets called, according to my debug prints.</p>
  
  <p><b>An instance 0x583870 of class TekkPoint is being deallocated while key value observers are still registered with it. Observation info is being leaked, and may even become mistakenly attached to some other object. Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here's the current observation info:
   (
   Context: 0x0, Property: 0x536400>
   Context: 0x0, Property: 0x55aba0>
  )</b></p>
  
  <p>Is there a particular way I should remove observers? Or perhaps a particular place that I should be removing them?</p>
  
  <p>According to this <a href="https://stackoverflow.com/questions/13927/in-cocoa-do-i-need-to-remove-an-object-from-receiving-kvo-notifications-when-deal">question</a> I am doing things right, but why would I get this error message?</p>
  
  <p>Here is my dealloc routine:</p>
  
  <pre><code>- (void)dealloc {
    // Remove all observers.
    for (NSString *path in [TekkPoint observedPaths]) {
      [self removeObserver:[option_ tChart]
            forKeyPath:path];
  
    }
  
    [description_ release];
    [weight_ release];
    [super dealloc];
  }
  </code></pre>
  
  <p>One thing to note that might be strange about my implementation is that I am adding and removing observers from the observee, could this cause my problem?</p>