Swift Event Center
关于
Swift Event Center 用于创建自定义事件和对它们进行响应。
想法是从头开始构建一个简单的事件中心,以便更好地理解通知/事件中心的工作原理:
- 有一个简单的用于简单任务的事件管理器
- 纯 Swift 编写,而不使用苹果的通知中心
- woodland>
- 没有使用苹果的通知中心
在构建过程中有趣的是,我对于通知中心有了更深入的理解。
为了让初学者更容易理解,我决定保持苹果的命名方式。
注意:EventCenter 不打算完全替代通知中心。它是一个更简单的替代品(即“更易用,但在功能上也更简单”),应该足够用于 简单项目。
功能
EventCenter 允许您
- - 为
Event.Name
(即Notification.Name
)添加观察者 - - 为添加的观察者指定一个名称,以便它们可以独立删除
- - 删除特定
Event.Name
的所有观察者 - - 删除特定
Event.Name
中具有特定name
的一个观察者 - - 发布事件,传递
object:Any?
&userInfo:[AnyHashable:Any]?
- - 为每个观察者指定优先级(尚未实现)
安装
使用SPM,将以下内容添加到您的Package.swift
依赖项中:
.package(url: "https://github.com/ladislas/SwiftEventCenter", from: "1.1.1")
使用
Event
只是Notification
的一个别称。
import EventCenter
let ec = EventCenter()
...
ec.addObserver(forEvent: Event.Name("event1"), name: "obs1", callback: { event: Event in
if let obj = event.object {
print("Hello, \(obj)!")
}
})
...
ec.post(event: Event.Name("event1"), object: "World")
作者
与以下内容合作:
- Ladislas de Toldi - ladislas
许可证
Apache 2.0 @ Ladislas de Toldi
原创作品
本项目基于许多优秀人士的想法。最初的想法是由<肽>S<肽>Stephen Haney肽>提出的。然后,在Rob<肽>n Walter肽>的<肽>Swift-Events肽> 项目的基础上进行改进。最初我想分叉Com<肽>Robin肽>的库,但用了几个小时后,我决定重写大部分。Stephen Haney和Robin Walter的原始作品受MIT许可。