Re: NSNotificationCenter : multiple messages sent to the same observer?
Re: NSNotificationCenter : multiple messages sent to the same observer?
- Subject: Re: NSNotificationCenter : multiple messages sent to the same observer?
- From: Iceberg-Dev <email@hidden>
- Date: Sun, 22 Feb 2009 18:59:40 +0100
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
<email@hidden> 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 (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