iOS核心笔记——iOS通知机制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS核心笔记——iOS通知机制相关的知识,希望对你有一定的参考价值。

1、ios通知机制:

1-1、iOS通知发布者、通知中心、监听器之间的关系:

如下图所示技术分享


2、通知(NSNotification)简介:

技术分享


3、通知中心(NSNotificationCenter)

3-1、每个应用程序只有一个通知中心对象(单例对象):

技术分享


4、发布通知:

4-1、对象在自己需要的某个时候使用通知类(NSNotification)创建通知对象后让通知中心帮忙发布通知:
  • 1、可以在对象A需要使用通知的某个位置,直接让通知中心帮忙发送的时候将通知中的一系列信息通过通知中心提供的方法创建通知并同时发送出去:

    示例程序

    1.- (void)postNote{
    2. // MARK: - 发送通知
    3. [[NSNotificationCenter defaultCenter] postNotificationName:@"HF" object:self userInfo:@{
    4. @"name" : @"贺华峰",
    5. @"birthday" : @"1994-01-19"
    6. }];
    7.}

     

  • 2、先创建通知对象,将通知信息创建的时候就设置好;然后让通知中心帮忙发送:

    示例程序

    1.- (void)postNote2{
    2. // 1. 创建通知
    3. NSNotification *note = [NSNotification notificationWithName:@"HF2" object:self userInfo:@{
    4. @"name" : @"贺华峰2",
    5. @"birthday" : @"01-19"
    6. }];
    7. // 2. 通知中心帮忙发送
    8. [[NSNotificationCenter defaultCenter] postNotification:note];
    9.}

     

  • 3、发布通知的常用方法:技术分享

5、监听通知:

5-1、监听器只有在通知中心注册监听通知之后,才能在通知发布之后接收通知;且监听器注册监听一定要在通知发布之前;
5-2、监听器注册监听通知常用方式:
  • 方式一:技术分享
  • 方式二:技术分享

6、注销:

6-1、监听器在自己销毁前一定要注销通知,否则,会造成野指针问题;
6-2、监听器注销所监听的通知的方式:

技术分享


7、键盘通知:

7-1、常见键盘通知类型:

技术分享

7-2、键盘通知常用附加信息:

技术分享


8、常见键盘通知:

8-1、键盘将要显示:

技术分享

8-2、键盘将要隐藏:

技术分享

8-3、键盘的frame将要改变:

技术分享


9、iOS设备类通知:

9-1、UIDevice类通知:

技术分享


10、比较通知和代理:

10-1、代理:
  • 1、代理设计模式的作用:

    • 1.A对象监听B对象的一些行为,A成为B的代理;
    • 2.B对象想告诉A对象一些事情,A成为B的代理。
  • 2、代理设计模式的总结:

    • 如果你想监听别人的一些行为,那么你就要成为别人的代理;
    • 如果你想告诉别人一些事情,那么就让别人成为你的代理
  • 3、代理设计模式的开发步骤:

    • 1.拟一份协议(协议名字的格式:控件名 + Delegate),在协议里面声明一些代理方法(一般代理方法都是@optional);
    • 2.声明一个代理属性:@property (nonatomic, weak) id<代理协议> delegate;
    • 3.在内部发生某些行为时,调用代理对应的代理方法,通知代理内部发生什么事;
    • 4.设置代理:xxx.delegate = yyy;
    • 5.yyy对象遵守协议,实现代理方法。
  • 4、代理和通知的区别:

    • 代理:1个对象只能告诉另1个对象发生了什么事;

    • 通知:1个对象可以告诉N个对象发生了什么事。

10-2、通知和代理的选择:

技术分享
























以上是关于iOS核心笔记——iOS通知机制的主要内容,如果未能解决你的问题,请参考以下文章

iOS核心笔记—KVC机制

AOP总结笔记

iOS核心笔记——UICollectionView-辅助视图

iOS学习笔记— 屏幕旋转

Nginx 高效核心 - IO 复用模型

ios通知机制