09 - 알림
1、NSNotification
이 종류는 하나의 메시지 대상으로 이해할 수 있는데, 그 중에는 세 개의 구성원 변수가 있다.
@property (readonly, copy) NSString *name;
@property (readonly, retain) id object;
@property (readonly, copy) 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를 추출하여 값을 전달할 수 있다.공지 사용 프로세스
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center postNotificationName:MSA_LOGIN_NOTIFICATION object:nil userInfo:@{@"errorCode" : @0 , @"ticket" : model.authTicket}];
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(verifySSOTicket:) name:MSA_LOGIN_NOTIFICATION object:nil];
// ( )
- (void)verifySSOTicket:(NSNotification *)notic
{
NSLog(@"notic:%@", notic.userInfo);
ViewController *vc = [[ViewController alloc] init];
self.window.rootViewController = vc;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.