One of the main issues with KVO is caused by classes not knowing what observers a superclass has registered.
When a subclass also wants to observe the same keyPath
they have the danger of removing the observer from the super class.
- (void)someMethod
{
[self addObserver:self
forKeyPath:@"view.frame