• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Get error message about registered observers when Object receives dealloc message
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Get error message about registered observers when Object receives dealloc message


  • Subject: Get error message about registered observers when Object receives dealloc message
  • From: Andreas Grosam <email@hidden>
  • Date: Fri, 28 Aug 2009 15:56:47 +0200

I'm using key-value-observing where an instance of class MyObservee has been registered for KVO with other objects which observe a value in a key path (e.g.: @"drives.model.port"):

The observee itself unregisters all observers in its dealloc method:

@implementation MyObservee
- (void) dealloc
{
[self removeAllObservers]; // basicly: [self removeObserver:observer forKeyPath:key];


    [super dealloc];
}


The observers are sill alive when the observee receives its dealloc message.


When the observed instance receives its dealloc message, I'm getting this error message in the console, before the first line of code in the dealloc method will be executed (note: BEFORE [super deallocate] has been invoked):


2009-08-28 14:57:49.753 MyApp[886:20b] An instance 0xd21b60 of class MyObservee is being deallocated while key value observers are still registered with it. Observation info is being 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 0xd38e00> (
<NSKeyValueObservance 0xd39880: Observer: 0xd356e0, Key path: drives.model.port, Options: <New: NO, Old: NO, Prior: NO> Context: 0x16df0, Property: 0xd38990>
...



The class MyObservee does NOT have a sub class - that is, [super dealloc] will not be called somewhere prematurely.
The base class of MyObservee is NSObject.



Am I doing something wrong here?

Thanks in advance for hints.


Regards Andreas Grosam _______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Get error message about registered observers when Object receives dealloc message
      • From: Graham Cox <email@hidden>
    • Re: Get error message about registered observers when Object receives dealloc message
      • From: Roland King <email@hidden>
    • Re: Get error message about registered observers when Object receives dealloc message
      • From: Reinhard Segeler <email@hidden>
  • Prev by Date: Re: Launching a document-based app with no document
  • Next by Date: Re: Making failed NSAsserts crash an app
  • Previous by thread: Curious about $SUBST_VARS within a SUBQUERY of a fetch request template
  • Next by thread: Re: Get error message about registered observers when Object receives dealloc message
  • Index(es):
    • Date
    • Thread