MulticastDelegate in a satisfied implementation.

What's New

Thread safe


MulticastDelegate is thread safe now.


Swift Version Swift Package Manager Build Status

Multicast delegate is a delegate that can have more than one element in its invocation list.


Using Swift Package Manager or import manually.

你也可以使用 gitee 镜像


  • NSHashTable free. It results better performance, support Liunx.
  • MulticastDelegate confirms Sequence, which means that lots of sequence features available.
  • Thread safe.
  • Other delightful details, eg: error handling optimization, debug log optimization.


I'm a big fan of the multicast delegate. I have "invented" and used it since 2014.

As Swift’s ABI is stabilized, it's time to move a Swift improvment.

But I cannot find a satisfied implementation everywhere. So I write one.


  • jonasman/MulticastDelegate - Use NSHashTable. Operator overloading is not a good idea in my opinion, it is not intuitive and reduces readability. API does not meet design guidelines (Omit needless words).
  • elano50/MulticastDelegateKit - Use NSHashTable.
  • Kevin Lundberg's - Generic type should not be AnyObject. API does not meet design guidelines (Omit needless words).
  • Greg Read's - Missing dupracate check when adding. API does not meet design guidelines (Omit needless words). I dislike remove when invoking.
  • Ivan's - Missing dupracate check when adding. It is odd using an equatable weak wrapper to check duplicates.


  • Swift Tools 5.3.0
View More Packages from this Author


  • None
Last updated: Wed Nov 09 2022 01:49:54 GMT-0500 (GMT-05:00)