title: Is observeValueForKeyPath always called from the main thread?
body: <p>Is <code>observeValueForKeyPath</code> always called from the main thread? </p>
  
  <p>I'm logging calls with</p>
  
  <pre><code>-(void) observeValueForKeyPath:(NSString *)keyPath
                        ofObject:(id)object
                          change:(NSDictionary *)change
                         context:(void *)context
  {
      NSLog(@"KVO: isMainThread %d", [NSThread isMainThread]);
      // ...
  }
  </code></pre>
  
  <p>and it seems to be printing <code>1</code> every time, but I was unable to find any guarantee of this in the docs. Can anyone confirm this is the case? </p>