Relay
Relay
是一个没有发送完成信号接口的 Combine.Subject
。
为什么
Subject
,就像 Publisher
,是状态化的。一旦发送了完成信号,订阅者将停止接收值。在实际应用中,这很少是所希望的。任何持有主题引用的人都可以为所有订阅者终止数据流。在大型项目中,这可能是bug的来源。
Relay
抵消了“完成”状态的可变性,使其更安全地共享。
安装
Xcode
添加包 https://github.com/dduan/Relay.git
。
Swift 包管理器
.package(url: "http://github.com/dduan/Relay", from: "0.1.2")
CocoaPods
use_frameworks!
pod "CombineRelay"
Carthage
github "dduan/Relay"
使用方法
Relay 提供了一些类型,每个类型都对应 Combine 中的一个类型。
Relay | Combine |
---|---|
Relay | Subject |
PassthroughRelay | PassthroughSubject |
CurrentValueRelay | CurrentValueSubject |
AnyRelay | AnySubject |
每种类型都具有与其 Combine 对应类型相同的接口和行为。但无法发送完整的信号。
许可协议
MIT。请参阅 LICENSE.md