Objective-C(19, 알림-메시지 발송 모드 중 하나)-iOS 개발 기반

이전의 학습 노트와 을 결합하여 Objective-C 지식점을 정리하고 정리했다.지식은 계속 변하고 있지만 참고로 애플 공식 문서를 기준으로 한다~
19. 알림-메시지 발송 모드 중 하나
1. 몇 가지 기본 개념(1) 알림: 대상을 대상으로 하는 프로그램에서 발생하는 시간을 여러 대상에게 통지하는 메시지 발송 모델이 필요할 때가 있다.(2) 통지센터: 통지를 기대하는 대상은 통지센터에 기대하는 통지를 미리 등록한다.(3) 발송: 어떤 대상이 통지센터에 메시지를 발송하여 요청을 발송하고 이 통지서 금액의 대상만 등록하면 통지센터에서 전송한 정보를 얻을 수 있다.(4) 관찰자: 메시지 발송 목표, 통지센터에 등록된 대상(여러 개 가능).(5) 멀티캐스트: 어떤 대상이 특정한 여러 대상에게 메시지를 보내면 알림은 멀티캐스트의 일종이다.
2. 알림 대상: 알림 센터에 메시지를 보내고 필요한 정보는 NSNotification 클래스의 실례에서 집중된 후에 알림 센터에 발송한다
+ (instancetype)notificationWithName:(NSString *)aName object:(id)anObject;
+ (instancetype)notificationWithName:(NSString *)aName
                              object:(id)anObject
                            userInfo:(NSDictionary *)aUserInfo;

변수 설명: aName: 알림의 짧은 텍스트를 인식하고 NSNotification 인터페이스에 다음과 같은 메시지를 보내면 anObject의 이름을 찾을 수 있습니다. 알림과 함께 보내는 부수적인 정보의 대상은 주로 알림을 보내는 대상이고nil userInfo: 알림과 관련된 각종 정보를 전달하거나nil
3. 알림 센터 NSNotificationCenter(1) 시스템은 기본적으로 알림 센터를 가지고 있으며 일반적으로 스스로 만들지 않는다.클래스 방법 획득
+ (NSNotificationCenter *)defaultCenter;
[NSNotificationCenter defaultCenter];

(2) 알림 발송
- (void)postNotification:(NSNotification *)notification; - (void)postNotificationName:(NSString *)aName object:(id)anObject; - (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;

알림 이름, 대상, 사용자 사전을 지정하여 알림을 만들고 수신자에게 보내는 알림 센터
(3) 관찰자 등록
- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;

변수 설명:observer:알림의 감청자 aSelector:알림을 받으면observer의 이 방법을 호출합니다.aName: 알림 이름, nil이 아닌 경우 특정 대상이 보낸 알림만 받습니다.만약 nil이 설정하지 않은 송신원을 표시하지 않는다면;object: 알림 발송자
특정한 여러 개의 알림 이름만 지정할 때 각 알림 이름을 각각 알림 센터에 등록하거나 nil로 지정하여 모든 알림 이름과 관련된 메시지를 보내고 수신 후 필요한 메시지만 처리할 수 있다.둘 다nil이면 메시지를 보내는 것에 대한 모든 알림을 받을 수 있습니다. (이것은 책의 원어입니다.)
(4) 관찰자의 등록 삭제
- (void)removeObserver:(id)observer;
- (void)removeObserver:(id)observer
                  name:(NSString *)aName
                object:(id)anObject;
[NSNotificationCenter defaultCenter] removeObserver:obj];

(5) 메모리 관리에 관하여 (1) 인용 계수 관리의 경우 통지센터는 관찰자를 등록할 때retain 관찰자와 발송원 대상이 아니다.따라서 객체를 해제하기 전에 공지 센터에서 관련 설정을 제거해야 합니다.그렇지 않으면 방출 대상을 가리키는 바늘이 빈 바늘로 변한다.(즉remove)(2) 쓰레기 회수 메커니즘에서 통지자와 발송원 대상은 약한 인용을 사용하여 통지센터에 등록한다.등록 여부와 상관없이 회수하여 석방될 수 있다.관찰자의 등록을 현시적으로 삭제할 필요가 없다.
내가 개인적으로 간단히 이해하자면, 바로 아래의 몇 마디 백화이다.
(1) 알림센터는 기본적으로 어디에 있는지 고민하지 말고 만들지 말고 알림과 관찰자를 잘 잡으면 된다.(2) 여러 명의 관찰자가 있을 수 있는데 등록하면 된다.(3) 통지 대상은 창립하지 않고 통지를 직접 보내면 된다.(4) 관찰자의 곳add,remove;(5) name은 nil이며 모든 알림을 받을 수 있습니다.
이 부분의 코드 예는 다음 편의'알림 모드에서 두 개의 textField 전송값과 모드 보기-iOS 개발을 실현하기'를 참고하십시오.

좋은 웹페이지 즐겨찾기