用于分发和监听事件的库。
事件通过 EventSource
分发。
let source = EventSource<String>()
// listen
let listener = source.listen { message in
print(message)
}
// dispatch
source.fire("Hello, World!")
// unlisten
listener.unlisten()
有一个实用工具类 ListenerStore
,用于保存监听器,并允许稍后取消所有监听器。
let store = ListenerStore()
let source1 = EventSource<String>()
let source2 = EventSource<Int>()
// listen
source1.listen { message in
print("listener 1: \(message)")
}.addToStore(store)
source1.listen { message in
print("listener 2: \(message)")
}.addToStore(store)
source2.listen { value in
print("listener 3: \(value)")
}.addToStore(store)
// dispatch
source1.fire("foo")
source2.fire(10)
// unlisten all
store.unlistenAll()
Eventitic 可以通过 CocoaPods 获取。 要安装它,只需将以下行添加到您的 Podfile 中
use_frameworks!
pod "Eventitic", '~> 5.0'
Eventitic 可以通过 Carthage 获取。 要安装它,只需将以下行添加到您的 Cartfile 中
github "hironytic/Eventitic" ~> 5.0
Eventitic 可以通过 Swift Package Manager 获取。 要安装它,请将依赖项添加到您的 Package.swift
文件中,如下所示
import PackageDescription
let package = Package(
name: "Hello",
dependencies: [
.package(url: "https://github.com/hironytic/Eventitic.git", from: "5.0.0"),
],
...
)
Hironori Ichimiya, hiron@hironytic.com
Eventitic 在 MIT 许可证下可用。 有关更多信息,请参阅 LICENSE 文件。