오늘은 Notification Center에 대해 공부하고 적용해보았습니다.
프로퍼티의 값이 변경될 때 마다 뷰를 업데이트 해주기 위해서 Notification Center을 사용해 보았습니다..
Notification Center는 이벤트가 발생하면 그 이벤트에 대한 액션을 취할 수 있도록 해주는 기능을 가지고 있습니다.
Notification이 이벤트를 post하게 되면 Notification의 observer가 post된 이벤트에 맞는 행동을 취합니다.
어떻게 사용하는지 바로 보겠습니다.
먼저 이벤트를 보내주는 곳에서 post를 해줍니다.
NotificationCenter.default.post(name: Notification.Name("NotificationName"), object: self)
그럼 이벤트에 대한 행동을 취해줄 곳에서 observer를 사용해줍니다.
NotificationCenter.default.addObserver(self, selector: #selector(didFruitStockChange(_:)), name: Notification.Name("NotificationName"), object: nil)
노티피케이션을 post 해주게 되면 옵저버에서 그것을 받아 지정해놓은 함수를 호출하며 노티를 처리하게 됩니다.
저는 이번에 MVC 모델을 구현하면서 모델에서 데이터의 변화를 post하여 뷰컨트롤러에 존재하는 옵저버가 받아 뷰컨트롤러가 인지하여 뷰에 있는 레이블의 출력문구를 변화시키는데에 사용하였습니다.
장점
단점