JustSignals 是 NotificationCenter 和代理的一种类型安全替代方案。 如果你的项目不需要绑定和 Rx 的魔法,而只是想用更严格和安全的东西来替换 NotificationCenter,那么可以使用它。 否则,请查看 RxSwift、ReactiveCocoa 和 Bond。
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'JustSignals'
end
替换 YOUR_TARGET_NAME
,然后在 Podfile
目录中,输入
$ pod install
添加到 Cartfile
github "devandsev/JustSignals"
在 Cartfile
目录中,输入
$ carthage update
不带任何数据的信号
let signal = Signal<Void>()
signal.subscribe(with: self) {
print("pong")
}
signal.fire(())
带有数据的信号
let signal = Signal<Int>()
signal.subscribe(with: self) { data in
print(data)
}
signal.fire(36)
如果需要传递多个值
let signal = Signal<(Int, Float, String, Bool)>()
signal.subscribe(with: self) { data in
print(data)
}
signal.fire((3, 2.2, "test", false))
如果订阅该信号的对象被释放,则订阅会自动取消,但如果需要提前取消订阅,请使用此方法
signal.unsubscribe(self)
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。