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、通知和代理的选择:

时间: 2024-12-26 08:51:22

iOS核心笔记——iOS通知机制的相关文章

iOS核心笔记——iOS应用程序启动原理

1.iOS应用程序启动示例图: 2.应用程序启动原理: 2-1.不通过storyboard文件启动: 执行main函数: 执行main函数中的UIApplicationMain函数,创建UIApplication对象,创建ApplicationDelegate对象并将其设置为UIApplication对象的代理: 程序启动完毕,开启消息循环(Main RunLoop).监听事件并调用注册方法:接着调用代理的application:didFinishLaunchingWithOptions:方法:

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

iOS核心笔记--UICollectionView-辅助视图 1.UICollectionView辅助视图: ?了解:UICollectionView中的头部视图.尾部视图都是使用注册机制 + 重用机制,提高程序的执行效率,其头尾部视图类型均为:UICollectionReusableView.注册辅助视图时使用字符串区分注册的视图为头部还是尾部视图,其区分字符串为:UICollectionElementKindSectionHeader(头部视图).UICollectionElementKin

iOS核心笔记——UICollectionView-布局对象

iOS核心笔记--UICollectionView-布局对象 1.UICollectionView布局对象: 1-1.UICollectionViewLayout: ?了解:1.UICollectionViewLayout没有itemSize属性,而collectionView的cell的大小不能为0或者小于0:所以,通常collectionView使用其子类UICollectionViewFlowLayout布局cell. ?了解:2.UICollectionViewLayout中声明了布局可

iOS核心笔记—KVC机制

1.KVC(键值编码) [1].什么是KVC? KVC俗称键值编码,就是可以通过一系列方法(KVC方法)根据对象的属性名称作为key值,传入具体的value值赋值给对象的属性. [2].KVC的作用 通常,当字典中的key与对象的属性名称完全相同时,这是我们能够通过使用KVC将字典中的value值设置给对象的属性:不过,切记:对象中的属性只能比字典中的key多而不能少,一旦字典中的key在对象中找不到与之对应的属性,程序崩溃:这也是KVC一个最致命的缺点. [3].KVC三种形式 key中不包含

iOS核心笔记—KVO机制

1.KVO KVO简介:Key Value Observing,通过Key键观察对象的对应Key键的属性值Value是否发生改变. KVO的作用: 当前对象想监听另一个对象的某个属性是否发生变化. KVO使用步骤:①给对象的某个属性添加监听器:②监听器实现监听方法:③对象销毁前一定要移除监听器. 当前对象监听另一个对象的某个属性: [person addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionN

iOS核心笔记——网络编程-网络安全

1.数据安全: 1.01 攻城利器:Charles(公司中一般都使用该工具来抓包,并做网络测试)2.注意:Charles在使用中的乱码问题,可以显示包内容,然后打开info.plist文件,找到java目录下面的VMOptions,在后面添加一项:-Dfile.encoding=UTF-83.02 数据安全的原则4. 1)在网络上"不允许"传输用户隐私数据的"明文"5. 2.)在本地"不允许"保存用户隐私数据的"明文"6.03

iOS核心笔记—MapKit框架-导航

1.导航简介: ?了解:导航,简单来说,就是根据用户指定的位置,进行路线规划:然后根据用户在行走过程中,实时的给出指引提示. 1-1.iOS导航实现方案: 方案 详细说明 方案一 将需要导航的位置传递给系统的地图APP进行导航 方案二 发送网络请求到Apple服务器/公司服务器获取导航数据,然后,手动绘制导航路线 方案三 利用第三方SDK实现导航功能(百度地图) ?说明:通常如果需要手动绘制导航路线,都是向Apple服务器发送请求.获取导航信息:此处,只对方案一.方案二做详细介绍,方案三将单独说

iOS核心笔记——多线程-GCD

1.GCD简介: ?了解:GCD全称为"Grand Central Dispatch",纯C语言,GCD提供了非常多功能强大的函数:GCD中所有的函数都包含于Libdispatch库中. 1-1.使用GCD的优势: ?了解:1.GCD是苹果公司为多核的并行运算提出的解决方案: ?了解:2.GCD会自动利用更多的CPU内核(例如:双核.四核): ?了解:3.GCD会自动管理线程的生命周期(创建线程.调度任务.销毁线程). 1-2.GCD两大核心概念: 名称 作用: 任务 执行什么操作 队

iOS核心笔记—CoreLocation框架-基础

1.CoreLocation框架简介: ?了解:在iOS开发中,要想使用地图和定位功能,必须基于2个框架进行开发.CoreLocation框架:主要用于地理定位:MapKit框架:主要用于地图展示. 1-1.CoreLocation框架功能: 功能 作用 地理定位 定位用户所在位置,获取对应的经纬度.海拔等位置信息 区域监听 事先在APP内部通过代码指定一个区域,当用户进入.或离开该区域的时候,可以通过对应的代理方法监听到用户的位置 地理编码 将详细的位置信息转换为对应的经纬度,即:位置信息 -