기어가더라도 제대로
Notification Center 간단 사용법 본문
필요성
객체간에 연결을 느슨하게 하기 위해 delegate 라는 것을 썻는데, 이 delegate도 많아지니 코드가 지저분해서, 1:多 혹은 多 : 多 를 지원하는 Notifaction Center 를 구현하기로 함
개념
중요 개념은 직접 연결보다는 느슨한 연결을 지향하고, 그 방식은 가운데에 Notification 이 알려주는 방식
사용법
1. NotificationCenter.default 선언(하지않으면서 사용하는 것이 오류 가능성이 낮음)
2. Notification 에 관련된 세부사항들을 설정
* Name : Notification 이 하는 행동을 담음
* Key : Notification 에 담을 변수를 정의
3. addObserver() : 센터로부터 전달되는 소식을 들을거라고 구독을 함
4. post() : 누가 구독을 했는지는 모르지만, 센터에 내부 자료가 변경되었다고 알림.
5. 옵저버 역할을 하고 있는 페이지가 사라지면, 옵저버를 해제해주어야함(안하면 100% 다운)
* viewWillAppear <-> viewWillDisappear
* viewDidAppear <-> viewDidDisappear
처럼 서로 쌍을 이루는 생명주기에서 관리하면 좋다.
추가로 알게된 내용
Q. 시스템에서 노티피케이션 별로 어떻게 구별을 하나요?
A. NotificationName 을 이용해 구분합니다.
extension Notification.Name {
static let rectangle = Notification.Name("Rectangle이 추가되었습니다.")
static let alpha = Notification.Name("알파값이 변경되었습니다.")
static let color = Notification.Name("컬러값이 변경되었습니다.")
}
참조
'Swift - 기초' 카테고리의 다른 글
RxSwift 용어 정리 - 1 - (0) | 2022.05.09 |
---|---|
객체간 데이터 전달하는 방법 4가지 (0) | 2022.05.08 |
Delegate (0) | 2022.03.11 |
Hashable (0) | 2022.03.11 |
parameta와 argument (0) | 2021.11.10 |
Comments