On Jun 20, 2009, at 4:15 PM, Jean-Daniel Dupas wrote:

Le 20 juin 09 à 20:56, Quincey Morris a écrit :

On Jun 20, 2009, at 11:08, Jean-Daniel Dupas wrote:

- (void)dealloc {
[_object release];
[super dealloc];
}

Try changing this to:

- (void) dealloc {
        self.object = nil;
        [super dealloc];
}

'keyPathsForValuesAffectingName' is going to cause your wrapper to observe its MyObject (not the observation that you set up manually, but a different one set up internally). When the wrapper deallocs, there's apparently nothing to cause this internal observation to be removed, so the MyObject continues to be observed by a deallocated object. At least, that's my theory.


Thank you for the suggestion, but it does not solve the problem. Even trying w1.object = nil before unregistring the observer has no effect.

The interesting thing is that doing w1.object = nil right before [w2 addObserver:foo forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:[Foo class]] does prevent the problem.

I think this is a bug in KVO. You should file a Radar.

-Jeff

_______________________________________________

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 arch...@mail-archive.com

Reply via email to