[例]NotificationCenter
4782 ワード
// 1. NotificationCenter 인스턴스 가져오기 (싱글턴)
let notificationCenter: NotificationCenter = NotificationCenter.default
// 2. Notification 이름 인스턴스 생성 (nested type인듯)
let notiName: Notification.Name = Notification.Name("noti날리자")
struct Receiver {
let name: String
let age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
// 3. Observer 등록
// - _ : observer등록할 객체
// - selector : noti를 받으면 수행할 메서드
// - name : 선별용. 수신할 noti의 name
// - object : 선별용. noti를 보낸 객체
notificationCenter.addObserver(self, selector: #selector(receivedNotification), name: notiName, object: nil)
}
// 4. selector 구현
@objc func receivedNotification() {
print("I got a notification")
}
}
struct Sender {
func send() {
// 5. notification 발송
// - name : 선별용. 어떤 이름으로 noti를 보낼 것인지
// - object : 선별용. noti를 누가 보냈는지 기입. 보통 self를 적는게 자연스러움
notificationCenter.post(name: notiName, object: nil)
}
}
Reference
この問題について([例]NotificationCenter), 我々は、より多くの情報をここで見つけました https://velog.io/@yohanblessyou/Notification-Center-예제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol