IOS 개발 알림 NSNotificationCenter
알림의 3가지 속성:
속성 이름 1、설명
- (NSString*) name 알림의 이름
- (id)object;게시자에게 공지
- (NSDictionary *) userInfo 알림에 대한 추가 정보
NSNotification을 초기화하는 방법:
- (instancetype)initWithName:(NSString *)name object:(id)object userInfo:(NSDictionary *)userInfo;
+ (instancetype)notificationWithName:(NSString *)aName object:(id)anObject;
+ (instancetype)notificationWithName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
주의: 공식 문서에 명확한 설명이 있으니 init로 초기화할 수 없습니다
2、NSNotificationCenter
이 클래스는 하나의 알림 센터로, 단일 디자인을 사용하면 모든 응용 프로그램에 기본 알림 센터가 있습니다.알림의 발송을 스케줄링하는 데 사용됩니다.
관찰자를 추가하면 방법, 이름, 대상을 지정할 수 있습니다.알림을 받았을 때 실행 방법.
- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;
알림 메시지 보내는 방법
- (void)postNotification:(NSNotification *)notification;
- (void)postNotificationName:(NSString *)aName object:(id)anObject;
- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
관찰자 제거 방법
- (void)removeObserver:(id)observer;
- (void)removeObserver:(id)observer name:(NSString *)aName object:(id)anObject;
몇 가지 참고 사항:
1. 발송한 알림이 Object 대상을 지정하면 관찰자가 수신한 알림 설정의 Object 대상은 그와 같이 알림을 받을 수 있지만 수신 알림은 이 인자를nil로 설정하면 모든 알림을 받을 수 있습니다.
2. 관찰자의 SEL 함수 바늘은 하나의 매개 변수를 가질 수 있다. 매개 변수는 바로 발송된 사오시 대상 자체이고 이 매개 변수를 통해 메시지 대상의userInfo를 추출하여 값을 전달할 수 있다.
2. 통지의 사용 절차
우선, 우리는 통지를 받아야 하는 곳에 관찰자를 등록한다. 예를 들어 다음과 같다.
//
NSNotificationCenter * center = [NSNotificationCenter defaultCenter];
// ,name object nil,
[center addObserver:self selector:@selector(notice:) name:@"123" object:nil];
-(void)notice:(id)sender{
NSLog(@"%@",sender);
}
다음과 같이 콜백 함수에서 userInfo 컨텐트를 가져올 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.