1월 23일 (화)
🔥학습 내용
Notification Center
1. Notification이란 무엇인가?
- 등록된 노티피케이션에 노티피케이션 센터를 통해 정보를 전달하기 위한 구조체이다.
- A container for information broadcast through a notification center to all registered observers.
[구조]
struct Notification
[주요 프로퍼티]
- name: 알림을 식별하는 태그
var name: Notification.Name
- object: 발송자가 옵저버에게 보내려고 하는 객체, 주로 발송자 객체를 전달하는 데 쓰임.
var object: Any?
- 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