CoreEvents
一个小巧的Swift事件工具包,提供了事件的一些基本类型
FutureEvent
简单的事件。提供经典的行为。
描述
这是一个经典的事件(例如C#中的event
),它可以包含许多监听器并将每条新消息多播给这些监听器。该事件只发出新的消息,这意味着如果您向已存在的事件添加新监听器,则最后不会向新监听器发出以前的消息。
类型
FutureEvent: Event
示例
var event = FutureEvent<Int>()
event += { value in
print("Awesome int: \(value)")
}
event.invoke(with: 42)
将打印Awesome int: 42
事件
描述
此事件提供所有Future
逻辑,但还额外为新的监听器提供最后发出的值。这意味着,如果你的事件已经发出值,然后再添加一个监听器,则监听器在同时处理之前发出的值。
类型
PresentEvent: 事件
示例
var event = PresentEvent<Int>()
event += { value in
print("Awesome int: \(value)")
}
event.invoke(with: 42)
event += {
print("Old awesome int: \(value)")
}
将打印
优秀的整数值:42
旧的优秀整数值:42
旧事件
描述
此事件类似于Present,但它会向新的监听器发射所有之前的消息。
类型
过去事件:事件
示例
var event = PastEvent<Int>()
event.invoke(with: 0)
event.invoke(with: 1)
event += { value in
print("Awesome int: \(value)")
}
event.invoke(with: 2)
将打印
牛十三型整数:0
牛十三型整数:1
牛十三型整数:2
如何安装
pod 'CoreEvents', '~> 2.0.1'
我们还支持 SPM
.package(url: "https://github.com/surfstudio/CoreEvents", .exact("2.0.2"))
警告
在一个文件中,你不能只使用 add
,你应该指定一个键 - add(key: String, _ listener: Closure)
版本控制
版本格式是 x.y.z
其中
- x 是主版本号。只有在大更新(实现变更,添加新功能)时增加。
- y 是次要版本号。只有在小更新(界面变更)时增加。
- z 是修订版本号。在有错误修复等情况下增加。