NotificationCenter 설명서 자습서(SwiftUI Foundation 중국어 안내서)
2915 단어 SwiftUIFoundation기술 문서 및 안내서
NotificationCenter
통지 분배 메커니즘은 정보를 등록된 관찰자에게 방송할 수 있다.
class NotificationCenter : NSObject
총람하다
객체는 공지 센터에 등록되어 NSNotification 사용 또는 방법으로 공지(객체)를 받습니다.대상이 자신을 관찰자로 추가할 때, 대상은 받을 알림을 지정합니다.따라서 대상은 여러 번 이 방법을 사용해서 서로 다른 통지의 관찰자로 등록할 수 있다.addObserver(_:selector:name:object:)addObserver(forName:object:queue:using:)
실행 중인 모든 응용 프로그램에는default 알림 센터가 있습니다. 새로운 알림 센터를 만들어서 특정한 위아래 문장의 통신을 구성할 수 있습니다.
알림 센터는 단일 프로그램에서만 알림을 전달할 수 있다.다른 프로세스에 알림을 보내거나 다른 프로세스에서 알림을 받으려면 바꾸십시오.DistributedNotificationCenter
메시지
기본 알림 센터 가져오기
1、class var
default
: NotificationCenter 이 프로그램의 기본 알림 센터입니다.
관찰자 추가 및 삭제
2、func addObserver(forName: NSNotification.Name?, object: Any?, queue: OperationQueue?, using: (Notification) -> Void) -> NSObjectProtocol
제공된 블록에 대한 알림을 수신하기 위해 알림 센터에 항목을 추가합니다.
3、func addObserver(Any, selector: Selector, name: NSNotification.Name?, object: Any?)
제공된 선택기를 호출하기 위해 알림 센터에 항목을 추가합니다.
4、func removeObserver(Any, name: NSNotification.Name?, object: Any?)
알림 센터의 스케줄러에서 일치하는 항목을 삭제합니다.
5、func removeObserver(Any)
알림 센터의 발표에서 지정한 관찰자의 항목을 삭제합니다.
알림 게시
6、func post(Notification)
지정된 공지를 공지 센터에 게시합니다.
7、func post(name: NSNotification.Name, object: Any?, userInfo: [AnyHashable : Any]?)
지정한 이름, 발송자, 정보가 있는 알림을 만들고 알림 센터에 발표합니다.
8、func post(name: NSNotification.Name, object: Any?)
지정한 이름과 발송자가 있는 알림을 만들고 알림 센터에 발표합니다.
Publishing Notifications to Combine
9、func publisher(for: Notification.Name, object: AnyObject?) -> NotificationCenter.Publisher
알림을 방송할 때 이벤트를 보낸 게시자를 되돌려줍니다.
10、struct NotificationCenter.Publisher
알림을 방송할 때 원소를 보내는 게시자.
실전 코드
NotificationCenter.default.addObserver(forName: NSWindow.didBecomeMainNotification, object: nil, queue: nil) { (notification) in
print("here")
}
}
class MsgMgr:NSObject{
func sendNoti(msg:String){
NotificationCenter.default.post(name: NSNotification.Name.Msg, object: msg)
}
}
extension Notification.Name {
static let Msg = Notification.Name("Msg_demo")
}
class MsgModel:ObservableObject{
@Published var name = ""
@objc func updateUI(notification: Notification) {
//let url = notification.userInfo?[URLContainer.urlKey]
print("")
self.name = notification.object as! String
}
func addNoti(){
NotificationCenter.default.addObserver(self,
selector: #selector( self.updateUI( notification:)),
name: Notification.Name.Msg,
object: nil)
}
}
기술 교류
QQ: 3365059189 SwiftUI 기술 교류 QQ 팜: 518696470
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SwiftUI로 AdMob 대응(배너편)
UIViewControllerRepresentable을 사용하여 SwiftUI에서 좋은 느낌에 배너가 포함된 화면을 표시합니다.
SwiftUI에서 AdMob 배너를 표시하고 싶었으므로 구현해 보았습니다.
AdMob의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SwiftUI로 AdMob 대응(배너편)UIViewControllerRepresentable을 사용하여 SwiftUI에서 좋은 느낌에 배너가 포함된 화면을 표시합니다. SwiftUI에서 AdMob 배너를 표시하고 싶었으므로 구현해 보았습니다. AdMob의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.