Notification-Observer-Helper
当使用基于 block 的 API 注册 NSNotificationCenter 的通知观察者时,我们将需要手动移除观察者;而当使用基于 selector 的 API 注册 NSNotificationCenter 的通知观察者时,我们需要创建一个新的函数来响应该通知。
这个实用工具旨在解决这个问题。
1) 创建一个 NotificationObserver 类的实例以注册你想注册的通知。2) 在你需要它的时候一直保持对这个实例的引用。
就这样,你做完了。
永远不用担心移除观察者或再次创建新的函数了!!!
上面的代码包含
1) 一个示例项目 2) 验证它的测试
请查看 NotificationObserverHelper.swift 文件获取更多详细信息。
我到目前为止所拥有的优势
- 在一个地方注册您所有通知的观察者。
- 使我们编写代码的代码变得更加易读,因为我们不会为了注册选型再创建更多的函数。
- 我们使用基于 block 的 API,因此使其易于使用且声明式。
不使用实用工具的示例
1) 添加观察者
var observer = NotificationCenter.default.addObserver(forName: NSNotification.Name.UIKeyboardDidShow, object: nil, queue: nil){}
2) 移除观察者
NotificationCenter.default.removeObserver(observer)
1) 添加观察者
NotificationCenter.default.addObserver(self, selector: #selector(keyboardDidShow(note:)), name: NSNotification.Name.UIKeyboardDidShow, object: nil)
2) 编写一个响应通知的函数
func keyboardDidShow(note: Notification) {
}
使用实用工具的示例
1) 创建一个变量
var keyboardObserver = NotificationObserver(name: NSNotification.Name.UIKeyboardDidShow, handler: { (note) -> (Void) in print("Did Show Keyboard") })