NotificationCenter 공부하기

hoBahk·2021년 10월 29일
0

Notification Center

오늘은 Notification Center에 대해 공부하고 적용해보았습니다.

프로퍼티의 값이 변경될 때 마다 뷰를 업데이트 해주기 위해서 Notification Center을 사용해 보았습니다..
Notification Center는 이벤트가 발생하면 그 이벤트에 대한 액션을 취할 수 있도록 해주는 기능을 가지고 있습니다.

Notification이 이벤트를 post하게 되면 Notification의 observer가 post된 이벤트에 맞는 행동을 취합니다.

사용법

어떻게 사용하는지 바로 보겠습니다.

먼저 이벤트를 보내주는 곳에서 post를 해줍니다.

NotificationCenter.default.post(name: Notification.Name("NotificationName"), object: self)
  • name: Notification.Name // 알람을 식별하는 태그.
  • obejct: Any? // 옵저버에게 보내려고 하는 타입.
  • userInfo: [AnyHasable: Any]? // Notification과 관련된 값 또는 프로퍼티.

그럼 이벤트에 대한 행동을 취해줄 곳에서 observer를 사용해줍니다.

NotificationCenter.default.addObserver(self, selector: #selector(didFruitStockChange(_:)), name: Notification.Name("NotificationName"), object: nil)

노티피케이션을 post 해주게 되면 옵저버에서 그것을 받아 지정해놓은 함수를 호출하며 노티를 처리하게 됩니다.

저는 이번에 MVC 모델을 구현하면서 모델에서 데이터의 변화를 post하여 뷰컨트롤러에 존재하는 옵저버가 받아 뷰컨트롤러가 인지하여 뷰에 있는 레이블의 출력문구를 변화시키는데에 사용하였습니다.

Notification Center 장단점

장점

  • Notification을 사용하면 짧은 코드로 간편하게 다른 객체와 소통할 수 있습니다.
  • 한번의 post로 여러 옵저버들이 이벤트를 받을 수 있어 좋습니다.

단점

  • 추적이 쉽지 않다.
  • post하고 난 이후 정보를 받을 수 없다.
profile
호박에 줄 그어서 수박 되는 성장 드라마

0개의 댓글