Envoy 1.0.0

Envoy 1.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新版本2017年3月
SwiftSwift 版本3.0
SPM支持 SPM

Pawel Dudek维护。



Envoy 1.0.0

  • Pawel Dudek 和 Paweł Kozielecki

Envoy

Envoy 是 NSNotificationCenter 的线程安全协议替代品。在 AirHelp,我们相信在大多数情况下使用 NSNotificationCenter 是一种反模式(关于这个主题已经说了很多话了)。

此外,在 Swift 的情况下,NSNotificationCenter API 感觉像是古老的,使用基于字符串的事件注册、选择器和需要 @objc 方法。

因此,我们决定构建一个替代品,它提供与 NSNotificationCenter 类似的解决方案,但没有任何耦合,并且具有一个更加优雅的 Swift API。

因此,Envoy 应运而生。

用法

为了为特定对象和协议注册通知,您需要调用

Envoy.register(AuthenticationObserver.self, observer: observer, object: poster)

要发布通知,您需要调用

Envoy.notify(AuthenticationObserver.self, object: poster) { observer in
    observer.didAuthenticate()
}

就这样!Envoy 将根据传入的协议和您希望观察的对象,负责路由到适当的对象。此外,它还自动处理弱引用,不需要在 deinit 之上取消注册。

安装

Swift 包管理器

Envoy 也可通过 Swift 包管理器获取。您可以通过定义一个依赖项来添加它

.Package(url: "https://github.com/airhelp/envoy.git", majorVersion: 1),

作者

Envoy 是 AirHelp 的开源项目,由以下人员设计和实现

许可证

Envoy 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。