7/17/08 8:59 AM, also sprach [EMAIL PROTECTED]:

> However, the way I am doing it makes me wonder where the best place
> should be for adding and removing the observers. What I am currently
> doing is adding the observers in the awakeFromNib methods of each
> viewController, and removing them in the dealloc method of the same
> controller. I think that adding the observers in awakeFromNib methods
> is fine, but the fact that I retain the view controllers implies that
> such controllers are still observing the application delegate even if
> they are not currently showing. Is this a good coding/design pattern?.
> 
> Furthermore, if I eventually switch to Garbage Collection in the
> future, those observers will not ever be removed. Or worse, in case I
> decided not to keep a reference in my  window controller, and the GC
> eventually claims an unused view controller, then what will happen to
> the observers.
> 
> Would someone bring a light to this.? Basically what i am asking is,
> where is the recommended place to add and to remove observers set up
> in views (or view controllers)?

I don't think it matters when you *start* observing, as long the the
observed objects are guaranteed to exist. awakeFromNib is a perfect place if
you expect the observation to last the lifetime of the nib objects.

I will say that removing observation in dealloc is a dangerous endeavor. It
works if you can guarantee that the observer will be deallocated *before*
the observed. This guarantee is difficult if not impossible in a nib-loaded
situation, AFAIK.

I believe that the bindings mechanism, however, has ways to deal with these
issues in a nib-loaded situation (and generally as well). That might be an
avenue to pursue.

HTH,

Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"


_______________________________________________

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