通过 RxSwift 优雅使用 NotificationCenter

原文

纯粹的官方代码使用NotificationCenter真的很难用,但是有了RxSwift,就变得方便了很多。

修改 Podfile,通过pod引入RxSwift
  pod 'RxSwift'
  pod 'RxCocoa'
通过 RxSwift 注册监听器
import RxSwift
import RxCocoa

let notificationName = Notification.Name("UploadStatus")
NotificationCenter.default.rx.notification(notificationName).subscribe(onNext: { notification in
    if(notification.object != nil){
        print("上传状态:\(notification.object!)")
    }
    if(notification.userInfo != nil){
        print("参数:\(notification.userInfo!)")
    }
})
发送通知
let notificationName = Notification.Name("UploadStatus")
NotificationCenter.default.post(name: notificationName, object: "上传失败")

NotificationCenter.default.post(name: notificationName, object: nil, userInfo: ["param1":"Wiki","param2":18])
posted @ 2019-05-24 00:34  ImWiki  阅读(2330)  评论(0编辑  收藏  举报