Shouter 0.5.0

Shouter 0.5.0

Andreas Ganske 维护。



Shouter 0.5.0

  • ChaosCoder

Shouter 是一种简单、安全、轻量级的点对多点通信方式。它是与 NotificationCenter 相对的类型、内存和线程安全替代方案。

  • 类型安全:不再需要通过 userInfo: [String: Any] 字典进行受保护的类型转换。
  • 线程安全:您可以在任何线程中安全地 registernotifyunregister 而不会崩溃和数据损坏。
  • 内存安全Shouter 使用 NSHashTable 通过零初始化弱引用来存储观察器。无需崩溃,也无需在释放前手动 unregister

用法

定义一个协议,您的观察者实现该协议

protocol SomeNotification {
  func somethingHappened(value: String)
}

class ViewController: UIViewController { /* ... */ }

extension ViewController: SomeNotification {
  func somethingHappened(value: String) {
    self.titleLabel.text = "Something happened: \(value)"
  }
}

有一个 观察者

let vc = ViewController()

注册 观察者以接收通知

Shouter.default.register(SomeNotification.self, observer: vc)

通知 所有观察者

Shouter.default.notify(SomeNotification.self) {
  $0.somethingHappened(value: "Hello World")
}

注销,当观察者不再对通知感兴趣时

Shouter.default.unregister(SomeNotification.self, observer: vc)

安装

CocoaPods

pod 'Shouter'

鸣谢

Shouter 吸收并部分基于库 100mango/SwiftNotificationCenter
徽标基于 Broadcast 图标,由 Amy Chiang 提供,来自 the Noun Project