import Foundation extension Notification.Name { static let ReachabilityStateChanged = Notification.Name( rawValue: "ReachabilityStateChanged") static let HiddenStateChanged = Notification.Name( rawValue: "HiddenStateChanged") static let NoticePushed = Notification.Name( rawValue: "NoticePushed") static let WorkPushed = Notification.Name( rawValue: "WorkPushed") } extension Notification{ typealias NotificationBlock = (Notification) -> Void static func registerNotification(name:NSNotification.Name, object:Any? = nil, queue:OperationQueue, block:@escaping NotificationBlock){ NotificationCenter.default.addObserver(forName: name, object: object, queue: queue, using: block) } static func removeNotification(observer:Any){ NotificationCenter.default.removeObserver(observer) } static func postNotification(name:NSNotification.Name, object:Any? = nil){ NotificationCenter.default.post(name: name, object: object) } }