개발을 하다보면 NotificationCenter를 통해서 데이터를 주고받거나 신호를 주고받는 경우가 생긴다.
// post
NotificationCenter.default.post(name: "blabla", object: nil)
// observer
NotificationCenter.default.addObserver(self, selector: #selector(실행시킬 함수), name: "blabla", object: nil)
이런식으로 많이 쓰게 되는데 노티는 여기저기 많이 흩어져있기 때문에
한 눈에 관리하기가 힘들었고, 이름이 겹칠 수도 있지 않을까? 하는 걱정을 하곤 했다.
그래서 이 고민을 해결할 방법을 찾아보았다 !!
이 방법 외에도 다양한 방법이 있었는데, 지금 내 고민을 해결하는건 이 정도로도 괜찮은 것 같아서
이 수준에서 포스팅을 남긴다.
extension Notification.Name {
// MARK: - 🏠 HOME
static let blablaNotification = Notification.Name(rawValue: "blabla")
}
// post
NotificationCenter.default.post(name: .blablaNotification, object: nil)
// observer
NotificationCenter.default.addObserver(self, selector: #selector(실행시킬 함수), name: .blablaNotification, object: nil)
이렇게 Notification.Name을 확장해서 사용하는 방식이다.
이렇게 하면 name을 적는 공간에서 자동완성으로 접근이 가능하다 👍🏻