기어가더라도 제대로

Notification Center 간단 사용법 본문

Swift - 기초

Notification Center 간단 사용법

Damagucci-juice 2022. 3. 15. 15:17

필요성

객체간에 연결을 느슨하게 하기 위해 delegate 라는 것을 썻는데, 이 delegate도 많아지니 코드가 지저분해서, 1:多 혹은 多 : 多 를 지원하는 Notifaction Center 를 구현하기로 함

개념

출처: 코드스쿼드 iOS 마스터즈 내부자료

중요 개념은 직접 연결보다는 느슨한 연결을 지향하고, 그 방식은 가운데에 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("컬러값이 변경되었습니다.")
}

 

참조

1: jinshine
2: 아리의 ios 탐구 생활

'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