JustSignals

Build Status

JustSignals 是 NotificationCenter 和代理的一种类型安全替代方案。 如果你的项目不需要绑定和 Rx 的魔法,而只是想用更严格和安全的东西来替换 NotificationCenter,那么可以使用它。 否则,请查看 RxSwiftReactiveCocoaBond

安装

CocoaPods

# Podfile
use_frameworks!

target 'YOUR_TARGET_NAME' do
    pod 'JustSignals'
end

替换 YOUR_TARGET_NAME,然后在 Podfile 目录中,输入

$ pod install

Carthage

添加到 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 文件。