On Jul 30, 2014, at 3:33 PM, Sean McBride <[email protected]> wrote:

> I'm slowing moving my GC app to ARC.  One runtime error I'm stuck at is:
> 
> --------
> An instance 0x10f587510 of class MyDocument was deallocated while key value 
> observers were still registered with it.
> 
> <NSKeyValueObservance 0x107985ad0: Observer: 0x107985810, Key path: 
> document.managedObjectContext, Options: <New: NO, Old: NO, Prior: NO> 
> Context: 0x0, Property: 0x10ee1ac10>
> --------
> 
> I have:
> - a nib who's File's Owner is an NSViewController subclass
> - an NSObjectController at the top-level of my nib
> - a strong IOOutlet from my NSViewController to the NSObjectController
> - the NSObjectController binds its 'managedObjectContext' binding to:
>   File's Owner.windowController.document.managedObjectContext
> 
> It's something about that binding that's causing the trouble.  If I remove 
> it, the error goes away.
> 
> File's Owner (my NSViewController subclass) responds to 'windowController' 
> because I have a vanilla synthesized weak property relating my 
> NSViewController to its containing window's controller.
> 
> It works under GC.  I just don't see how this is a problem under ARC... any 
> one have any thoughts?

A zeroing weak property changes without emitting KVO change notifications.  
Therefore, it's not KVO-compliant.  Basically, weak properties are incompatible 
with KVO and bindings.

Likewise, if any other property along that key path is changed in a 
non-KVO-compliant manner, that would lead to the same sort of error.

Regards,
Ken


_______________________________________________

Cocoa-dev mailing list ([email protected])

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to