Swift 事件中心用于创建自定义事件并响应它们。
这个想法是从零开始构建一个简单的事件中心,以
这个过程中有趣的是,在构建它的同时,我对 Notification Center (通知中心) 的工作原理有了更深入的理解。
为了方便新手,我决定保留 Apple 的命名方式。
注意: EventCenter 并非旨在完全替代 Notification Center (通知中心)。它是一个更简单的替代方案(如“更易于使用,但在功能方面也更简单”),应该足以满足简单的项目需求。
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
的一个 typealias
(类型别名)。
请参阅 docs、Examples 和 Tests 以获取更多信息。
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")
用 ❤️ 由
Apache 2.0 @ Ladislas de Toldi
最初的工作
这个项目基于伟大人物的想法。最初的想法由 Stephen Haney 创建。之后由 Robin Walter 的 Swift-Events 进行了改进。最初我想 fork Robin 的 repo,但在花了几个小时研究它之后,我决定重写大部分内容。来自 Stephen Haney 和 Robin Walter 的原始工作基于 MIT 许可证。