GDB says that a KVO observer is registered even though it is not (or is it?).
- by Paperflyer
When my application is closed, the main controller class removes itself as Observer from the model and then releases the model. Like this:
- (void)dealloc {
[theModel removeObserver:self
forKeyPath:@"myValue"];
[theModel release];
[super dealloc];
}
And right after that, the debugger says:
2010-04-29 14:07:40.294 MyProgram[13678:a0f] An instance 0x116f2e880 of class TheModel was deallocated while key value observers were still registered with it. Observation info was 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:
<NSKeyValueObservationInfo 0x100288450> (
<NSKeyValueObservance 0x1002aca90: Observer: 0x116f40ec0, Key path: myValue, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x116f80430>
)
where 0x116f2e880 is indeed the model and 0x116f40ec0 is indeed the controller.
How can the controller still be an observer when it just removed itself as an observer?