TIL (Today I Learned) 240123_Notification Center

Danny·2024년 1월 24일

TIL(Today I Learned)

목록 보기
21/34

1월 23일 (화)

🔥학습 내용

Notification Center

1. Notification이란 무엇인가?

  • 등록된 노티피케이션에 노티피케이션 센터를 통해 정보를 전달하기 위한 구조체이다.
  • A container for information broadcast through a notification center to all registered observers.

[구조]

struct Notification

[주요 프로퍼티]

  1. name: 알림을 식별하는 태그
var name: Notification.Name
  1. object: 발송자가 옵저버에게 보내려고 하는 객체, 주로 발송자 객체를 전달하는 데 쓰임.
var object: Any?
  1. userInfo: 노티피케이션과 관련된 값 또는 객체의 저장소
var userInfo: [AnyHashable : Any]?

2. 왜 Notification을 사용할까?

  • 정보를 Notification Center에 전달해주기 위해 사용한다.

3. Notification Center란 무엇인가?

  • 등록된 옵저버에게 동시에 노티피케이션을 전달하는 클래스이다.
  • NotificationCenter 클래스는 노티피케이션을 발송하면 노티피케이션 센터에서 메세지를 전달한 옵저버의 처리할 때까지 대기한다. 즉, 흐름이 동기적(synchronous)으로 흘러간다.

[기본 Notification Center 얻기]

  • default: 애플리케이션의 기본 노티피케이션 센터이다.
class var 'default': NotificationCenter { get }

[옵저버 추가 및 제거]

  • addObserver(forName:, object:, queue:, using:)
  • addObserver(_:, selector:, name:, object:) - 노티피케이션을 노티피케이션 센터의 메서드를 가리키는 장소에 이름을 추가합니다.
  • removeObserver(_:, name:, object:) - 노티피케이션 센터의 메서드를 가리키는 장소에서 일치하는 이름을 제거합니다.
  • removeObserver(_:) - 노티피케이션 센터의 메서드를 가리키는 장소에서 모든 이름을 제거합니다.

[노티피케이션 발송]

  • post(_:) - 지정된 노티피케이션을 노티피케이션 센터에 발송합니다.
  • post(name:, object:, userInfo:) - 지정된 이름, 보낸 객체, 보낼 정보로 노티피케이션을 만들어 노티피케이션 센터에 발송합니다.
  • post(name:, object:) - 지정된 이름, 보낸 객체로 노티피케이션을 만들어 노티피케이션 센터에 발송합니다.

#. 참고URL

profile
안녕하세요 iOS 개발자 지망생 Danny 입니다.

0개의 댓글