[关闭]
@SanMao 2015-08-06T00:32:35.000000Z 字数 2355 阅读 1111

通知

知识补充


需要掌握

通知中心

通知(NSNotification)

  1. - (NSString *)name; // 通知的名称
  2. - (id)object; // 通知发布者(是谁要发布通知)
  3. - (NSDictionary *)userInfo; // 一些额外的信息(通知发布者传递给通知接收者的信息内容)
  1. + (instancetype)notificationWithName:(NSString *)aName object:(id)anObject;
  2. + (instancetype)notificationWithName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
  3. - (instancetype)initWithName:(NSString *)name object:(id)object userInfo:(NSDictionary *)userInfo;

发布通知

  1. - (void)postNotification:(NSNotification *)notification;
  2. 发布一个notification通知,可在notification对象中设置通知的名称、通知发布者、额外信息等
  3. - (void)postNotificationName:(NSString *)aName object:(id)anObject;
  4. 发布一个名称为aName的通知,anObject为这个通知的发布者
  5. - (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
  6. 发布一个名称为aName的通知,anObject为这个通知的发布者,aUserInfo为额外信息

注册通知监听器

  1. - (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;
  1. - (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *note))block;

取消注册通知监听器

  1. - (void)removeObserver:(id)observer;
  2. - (void)removeObserver:(id)observer name:(NSString *)aName object:(id)anObject;
  1. - (void)dealloc {
  2. //[super dealloc]; 非ARC中需要调用此句
  3. [[NSNotificationCenter defaultCenter] removeObserver:self];
  4. }

UIDevice通知

  1. UIDeviceOrientationDidChangeNotification // 设备旋转
  2. UIDeviceBatteryStateDidChangeNotification // 电池状态改变
  3. UIDeviceBatteryLevelDidChangeNotification // 电池电量改变
  4. UIDeviceProximityStateDidChangeNotification // 近距离传感器(比如设备贴近了使用者的脸部)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注