I'm getting this message. I think I know what all the words mean, and I've crawled the KVC and KVO manuals again just to be certain, but I'm not getting any inspirations on what I'm supposed to do about this situation. Having seen this message, if I let the program continue very much longer (_not_ very much longer, actually), I'm likely to get a BAD_ACCESS crash, which I suppose must be related.

2008-04-25 17:13:11.191 SCPluginUIDaemon[20884:10b]
        Exception raised during posting of notification.  Ignored.
        exception: 'Cannot remove an observer <NSKeyValueObservance 0x3807e0>
        for the key path "kind" from <SVNWCEntry 0x34bfa0>
        because it is not registered as an observer.'
        invoked observer method: '*** -[SVNInfoUI windowWillClose:]'
        observer: 0x34c380
        notification name: 'NSWindowWillCloseNotification'

I guess part of my confusion is the paradox between "cannot remove an observer" and "it is not registered as an observer." If it's not registered, who's trying to remove it? And why? And what have I done to confuse the poor bloke?

The SVNInfoUI is File's Owner to the NIB, and delegate, and this happens when I close the window (all that sounds right). -[SVNInfoUI windowWillClose:] does, indeed, do [self setEntry:nil], where entry is an SVNWCEntry, and -setEntry: looks like this:

- (void) setEntry:(SVNWCEntry *)value
{
        [self willChangeValueForKey:@"entry"];
        
        [value retain];
        [entry release];
        entry = value;
        
        [self didChangeValueForKey:@"entry"];
}

I can see how this could lead to some vigorous unregistering of observers.

will/didChanging @"entry.kind" in setEntry makes no discernible difference.

"kind" is a property of SVNWCEntry, and the purpose of the SVNInfoUI is to display all those SVNWCEntry properties, including "kind", so I dare say someone's observing the thing, but I can't trace down who, or where the connection's made, or how to unmake it. Kind is not a member variable, it's an entry in a dictionary held by SVNWCEntry, so - [SVNWCEntry kind] is actually

- (NSString *) kind {
        return [data valueForKey:@"kind"];
}

which I believe is still KVC-compliant and KVOable, though I'm mystified as to why it was originally coded that way.

And yes, I've been changing all that code furiously, in particular because all these objects were formerly leaked and I'm trying to get them released and cleaned up, and so even though this stuff has been in our product for a long time, this is probably the first time on any stage that an SVNInfoUI and its associated SVNWCEntry have ever actually been dealloc'ed, so nearly any surprising thing might be true of them.


-==-
Jack Repenning
[EMAIL PROTECTED]
Project Owner
SCPlugin
http://scplugin.tigris.org
"Subversion for the rest of OS X"


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to