import Foundation
import RxSwift
protocol NotificationCenterHandler {
var name: Notification.Name { get }
}
extension NotificationCenterHandler {
func addObserver() -> Observable<Any?> {
return NotificationCenter.default.rx.notification(name).map { $0.object }
}
func post(object: Any? = nil) {
NotificationCenter.default.post(name: name, object: object, userInfo: nil)
}
}
extension으로 addObserver와 post를 구현해준다.
import Foundation
import UIKit
enum NotificationCenterManager: NotificationCenterHandler {
case reloadProfile
var name: Notification.Name {
switch self {
case .reloadProfile:
return Notification.Name("NotificationCenterManager.reloadProfile")
}
}
}
enum 으로 상속받으면 더 효율적임!
NotificationCenterManager.reloadProfile.post()
NotificationCenterManager.reloadProfile.addObserver()
를 작성해주고
subscribe 혹은 observable chaining으로 연결해주면 된다!
observable chaining으로 스트림 연결해서 빼줄 때 넘 유용한듯!
요론식으로!