NotificationCenter 기초 기초

"NotificationCenter는 원래 무엇?""무엇이 좋은거야?""최소한으로 사용하려면 어떻게 하면 좋을까?"써 보겠습니다.

그림으로 하면 이런 느낌입니다.


부모와 자식 관계가 없는 클래스끼리의 연락에 매우 편리합니다.

메시지가 통일되면
클래스 A가 복수 있어도, 클래스 B가 복수 있어도 괜찮습니다. 연락이 가능합니다.

샘플로 홈 버튼을 눌러 백그라운드로 갈 때 "willResignActive"라는 메시지를 발신하여 ViewController에서 받는 샘플을 만듭니다.

먼저 SingleViewApplication 프로젝트를 만듭니다.





AppDelegate.swift 내에서 아웃바운드 코드 작성


    func applicationWillResignActive(_ application: UIApplication) {

        // "willResignActive"を発信!
        NotificationCenter.default.post(name: NSNotification.Name(rawValue: "willResignActive"), object: nil)
    }

ViewController.swift 내에 감시 코드와 수신 코드 작성


import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 「"willResignActive"って呼ばれたらこのクラス(self)に書いてあるhoge()を呼んでね」
        NotificationCenter.default.addObserver(
            self,
            selector: #selector(self.hoge),
            name: NSNotification.Name("willResignActive"),
            object: nil
        )
    }

    func hoge() {
        print("willResignActiveって呼ばれたよー!")
    }

}

단지 이것만으로 사용할 수 있습니다.

앱 개발을 시작했을 무렵 매우 고마운 구조였으므로, 꼭 사용해 보세요. 연락을 다루는 클래스끼리 부모와 자식 관계가 있다면 Delegate를 사용하는 것이 좋지만.

좋은 웹페이지 즐겨찾기