On 26/02/2008, at 7:01 PM, Quincey Morris wrote:

I find it hard to see anything dangerous in the finalize strategy used in the above code, unless:

(a) there's a possibility that the observer is being finalized around the same time, or

(b) the finalize method tries to set one of the observee's own properties (thus triggering a notification to the observer, which could perhaps zombify the observee if the observer stored its pointer)

The observation info uses a weak reference and it will have been zeroed before finalize is called so neither of the above are a problem. Even so, I'm not sure it's a good idea to call removeObserver: from the finalize method.

Knowing this, you might wonder if you have to call removeObserver at all in the GC case. I just ran some tests and it looks like you do otherwise you'll get a memory leak which is a shame because it would be easy to clean up automatically.

On a side note, it doesn't look like you have to call removeObserver: for notifications registered with NSNotificationCenter.

- Chris

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

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

This email sent to [EMAIL PROTECTED]

Reply via email to