SwiftEventCenter 1.1.1

SwiftEventCenter 1.1.1

Ladislas de Toldi 维护。



  • 作者:
  • Ladislas de Toldi

Swift Event Center

swift-version spm CocoaPods Build Status SonarCloud Coverage SwiftEventCenter

关于

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")

作者

与以下内容合作:❤️

许可证

Apache 2.0 @ Ladislas de Toldi

原创作品

本项目基于许多优秀人士的想法。最初的想法是由<肽>S<肽>Stephen Haney提出的。然后,在Rob<肽>n Walter的<肽>Swift-Events 项目的基础上进行改进。最初我想分叉Com<肽>Robin的库,但用了几个小时后,我决定重写大部分。Stephen Haney和Robin Walter的原始作品受MIT许可。