On Feb 22, 2009, at 6:39 PM, Bill Bumgarner wrote:

On Feb 22, 2009, at 8:59 AM, Iceberg-Dev wrote:
On Feb 22, 2009, at 1:37 AM, Michael Ash wrote:
On Sat, Feb 21, 2009 at 6:06 PM, Iceberg-Dev <dev.iceb...@gmail.com> wrote:
I just discovered something recently. If you register an observer with the same name/object/selector twice, you get the notification twice when you
post it.

Isn't the NSNotificationCenter supposed to prevent this?

Why, is there some place in the documentation where it says that?

There isn't. But it would make sense in 99% of cases.

Actually, the behavior is documented in the Cocoa Notifications programming topic:
It is possible for an observer to register to receive more than one message for the same notification. In such a case, the observer will receive all messages it is registered to receive for the notification, but the order in which it receives them cannot be determined.

Thanks for the pointer. It would be nice to have this explanation available in the description of the addObserver:selector:name:object: as it might be where one could expect to find it. I filed an enhancement suggestion.

The current behavior makes it possible to implement architectures where a client could take "more action" for any given notification by registering more than once. Not supporting this pattern would make such a pattern significantly more inconvenient to implement.

As well, any kind of a coalescing in the notification center is going to increase the complexity/overhead of the observer and, in particularly, might likely impact notification delivery speed (or, alternatively, require the notification center to use a bunch more memory to differentiate between "set of registered observers" and "list of observers that I actually deliver stuff to").

I think it would just require to make the search once on registration, not every time a notification is sent. _______________________________________________

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