b9swift/MulticastDelegate
MulticastDelegate in a satisfied implementation.
Installation
Use Swift Package Manager or import manually.
你也可以使用 gitee 镜像。
Features
- NSHashTable free. It brings better performance and support for Linux.
- MulticastDelegate confirms
Sequence, which means that lots of sequence features are available. - Thread safe.
- Other delightful details, eg: error handling optimization, debug log optimization.
Background
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 implementation.
But I cannot find a satisfied implementation everywhere. So I write one.
Alternatives
- 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 duplicate check when adding. API does not meet design guidelines (Omit needless words). I dislike removing when invoking.
- Ivan's - Missing duplicate check when adding. It is odd to use an equatable weak wrapper to check duplicates.
Package Metadata
Repository: b9swift/MulticastDelegate
Stars: 3
Forks: 0
Open issues: 0
Default branch: master
Primary language: swift
License: MIT
Topics: delegates, mvc, notification, swift, swift-package
README: README.md