码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2017-02-05 15:34:57      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:示例   option   格式   cat   技术   bsp   center   注册   use   

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通知机制

标签:示例   option   格式   cat   技术   bsp   center   注册   use   

原文地址:http://www.cnblogs.com/leilifengixng/p/6367595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!