TypedNotificationCenter
This framework is about rethinking Apple's NotificationCenter to be more typesafe and about removing uncertainity of the needed value being present in the userInfo dictionary.
Example usage
// SampleNotification.swift
import TypedNotificationCenter
enum SampleNotification: TypedNotification {
struct Payload {
let type = "test"
}
typealias Sender = MyCustomView
}
// OtherFile.swift
// Observe a notification and execute a block with the sender and the payload
var observations = [TypedNotificationObservation]()
observations.append(TypedNotificationCenter.default.observe(SampleNotification.self, object: nil, block: { (sender, payload) in
print(sender, payload)
}))
// Post a notification
TypedNotificationCenter.default.post(SampleNotification.self, sender: self, payload: SampleNotification.Payload())
// Stop observing the notification, this is also called when the observation object deinitializes
observation?.invalidate()