NotificationCenter에 등록된 Event가 발생하면 해당 Event에 대한 행동을 취한다.
등록된 객체들에게 동시에 Notification을 전달해주는 클래스이다.
Notification의 중계자 역할
NotificationCenter.default.post(name: "notificaiton 이름", object: "전달할 값")
post는 전송하는 notification이다.
notification을 Observer에게 값을 전달해준다.
Observer는 name 키 값을 탐지한다.
어떤 객체가 지정한 notification name으로 notification을 전송하면 observer에서 탐지하여 수행한다.
NotificationCenter.default.addObserver(observer: Any, selector: Selector, name: NSNotification.Name?, object: Any?)
NotificationCenter는 Singleton 인스턴스로, 여러 오브젝트를 공유한다.
따라서 등록된 오브젝트가 해제되면 NSNotificationCenter에서도 Observer를 제거했다고 알려야 한다.
// 등록된 Observer 전체 제거
NotificationCenter.removeObserver(self)
// 특정 Observer 제거
NotificationCenter.removeObserver(self, name: NSNotification.Name?, object: Any?)