iOS의 Noticfication 소개 및 사용

2969 단어

Noticfication


통지의 요소

  • 알림 게시
  • 통지의 감청
  • 알림의 제거
  • 알림 센터(NSNotificationCenter)

  • 모든 응용 프로그램은 알림 센터(NSNotification Center) 실례를 가지고 서로 다른 대상 간의 메시지 통신을 협조하는 것을 전담한다
  • 어떤 대상이든 알림센터에 알림(NSNotification)을 발표하여 자신이 무엇을 하고 있는지 설명할 수 있다.기타 관심 대상(Observer)은 특정한 알림이 발표될 때(또는 특정한 대상이 알림을 발표할 때) 이 알림을 받을 수 있다
  • NSNotification 알림

  • 알림 속성
  •  //  
    - (NSString *)name;
    //  ( )
    - (id)object;
    //  ( )
    - (NSDictionary *)userInfo;
    
    
  • 공지(NSNotification) 객체 초기화
  • + (instancetype)notificationWithName:(NSString *)aName object:(id)anObject;
    + (instancetype)notificationWithName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
    - (instancetype)initWithName:(NSString *)name object:(id)object userInfo:(NSDictionary *)userInfo;
    
    

    알림 게시

  • 알림 센터(NSNotificationCenter)는 알림 발표를 돕는 적절한 방법을 제공했다
  • 
    - (void)postNotification:(NSNotification *)notification;
     notification , notification 、 、 
    
    - (void)postNotificationName:(NSString *)aName object:(id)anObject;
     aName ,anObject 
    
    - (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
     aName ,anObject ,aUserInfo 
    
    

    등록 알림 모니터

  • 알림센터(NSNotificationCenter)는 알림을 감청하는 감청기(Observer)를 등록하는 방법을 제공했다
  • 
    // observer: , 
    // aSelector: , , 
    // aName: 。 nil, , 
    // anObject: 。 anObject aName nil, 
    - (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;
    
    
    // name: 
    // obj: 
    // block: , block
    // queue: block , nil, 
    - (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *note))block;
    
    

    등록 취소 알림 감청기

  • 알림센터는 (retain) 감청기 대상을 보류하지 않으며, 알림센터에 등록된 대상은 해당 대상이 풀리기 전에 등록을 취소해야 한다.그렇지 않으면 해당 알림이 다시 나타날 때 알림센터는 이 감청기에 메시지를 보낼 것이다.상응하는 감청기 대상이 방출되었기 때문에 응용 붕괴
  • 를 초래할 수 있음
  • 통지센터는 상응하는 방법을 제공하여 감청기 등록을 취소한다
  • - (void)removeObserver:(id)observer;
    - (void)removeObserver:(id)observer name:(NSString *)aName object:(id)anObject;
    
    
  • 일반적으로 감청기가 소각되기 전에 등록을 취소한다(예를 들어 감청기에 아래 코드를 추가한다)
  • - (void)dealloc {
        //[super dealloc];   ARC 
        [[NSNotificationCenter defaultCenter] removeObserver:self];
    }
    
    

    공통 UIDevice 알림

  • UIDevice류는 하나의 단일 대상을 제공했다. 이것은 장치를 대표하고 배터리의 전기량치(battery Level), 배터리 상태(battery State), 장치의 유형(모델, 예를 들어 iPod, 아이폰 등), 장치의 시스템(시스템Version)
  • 등 장치와 관련된 정보를 얻을 수 있다.
  • [UIDevicecurrentDevice]를 통해 이 단례 대상을 얻을 수 있습니다
  • UIDevice 대상은 끊임없이 알림을 발표할 것이다. 다음은 UIDevice 대상이 발표한 알림의 명칭 상수이다.
  • //  
    UIDeviceOrientationDidChangeNotification
    //  
    UIDeviceBatteryStateDidChangeNotification
    //  
    UIDeviceBatteryLevelDidChangeNotification
    //  ( )
    UIDeviceProximityStateDidChangeNotification
    

    좋은 웹페이지 즐겨찾기