测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2016年11月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由Joseph Neuman维护。
Swignals 是一个完全用 Swift 编写的观察者模式系统。
您可以将所有文件从源文件夹拖到项目中,或者使用 CocoaPods 安装。
假设我们想在 shuffle 设置时向 AudioPlayer 类中添加一个信号,这可能看起来像这样
typealias OnShuffleChangedSwignal = Swignal1Arg<Bool>
class AudioPlayer {
static let sharedInstance = AudioPlayer()
let onShuffleChanged = OnShuffleChangedSwignal()
var shuffle: Bool = false {
didSet {
onShuffleChanged.fire(shuffle)
}
}
}
然后要订阅该信号,您会这样做
class ControlsViewController: UIViewController {
init() {
AudioPlayer.sharedInstance.onShuffleChanged.addObserver(self) { (observer, arg1) in
// note: you can rename the variables in the callback such as
// callback: { (weakSelf, shuffle) in
if let favoriteTracksDataSource = observer.tracksDataSource as? FavoriteTracksDataSource {
favoriteTracksDataSource.shuffle = arg1
favoriteTracksDataSource.refresh()
}
}
}
func updateViewBasedOnShuffle(shuffle: Bool) {
// do important things
}
}
本项目受 MIT 许可证约束 - 有关详细信息,见 LICENSE.md 文件