iOS海哥开发笔记 (海哥原创,iOS 通知NSNotificationCenter)
2016-02-23 12:28
309 查看
iOS的一种很好用的方法(不知道iOS底层是怎么实现的但是猜测是利用kvc原理实现的,类似于字典原理,再向底层的话,就看看做c函数类似的逻辑,先姑且不谈)。下面让我们看看通知如何使用,再什么情况下使用。
首先通知分成这么几个部分1、addObserver 2、postNotificationName 3、要是不使用的话,避免设备设备内部的线程以及内存浪费或避险内存泄漏的话,要remove观察者。
刚开始学习的同学,往往会错误的认为应该先postNotificationName(发出信息),然后接受addObserver(接受信息)。其实这种想法是错误的。对于iOS通知,我们必须先addObserver(建立起接收信息的接口,或者说是渠道吧)然后等待信息传送过来。现面给出代码截图。
首先在第一个类中构建一个通知的接收者是self(也就是本类),接收后,响应一个事件(dachengge:)事件,我们通过@"zxc"来确定观察者的名字(只有name相同才可以接通),dachengge:方法中的obj是等待一会穿过来的参数接口,等待通知的发出者发出数据,我们这边接收到后,打印数据。
点击UIButton跳转到二级界面,看看二级几面的内容,并且在一级页面会有什么发生。
二级界面是通过通知名字“zxc”,发送了一个NSString类型的字符串(下面的打印数据其实是在第一个界面打印的,通过逻辑分析,nslog是在第一个界面调用的,也可以之道)。这就是通知的大体流程。
让我们最后回顾一边通知的流程,1,先建立好接收这,准备接收。2,发出者发出数据,界面响应。
题外话:说今题为神么在这里聊聊这么简单的东西,今天项目里面加了一个东西,就是类似于
这个小球上的那个8(新消息提示),并且是即时性的,也就是说这个界面加载好了,假入有一条新的数据,这个小红点就要变为九。那么我们在项目中应如何操作。
有一个可以点击的按钮,可以请求网络,或者一下可以上拉或下拉的refresh操作请求网络,才可以使得小红点改变。但是在我的这个项目里,这么操作是不可以的,没有一个按钮是让你去获取网络的,一个界面,加载完,你就什么都不准操作,静静的等着数据的到来,然后把小红点加一,那我们应如何操作~我给出了两个方案。
方案1、
后台推送后,在推送的onMethend方法中截取后台的数据推送,记录这次推送,然后发出通知,在相应页面正在开启的时候接到通知,数据加1
方案2、
使用kvo(key-value- observing)。
今天就说这么多了,这两天赶项目,脚打后脑勺了,周五,周六就没有发日志,以后会补回来的。
首先通知分成这么几个部分1、addObserver 2、postNotificationName 3、要是不使用的话,避免设备设备内部的线程以及内存浪费或避险内存泄漏的话,要remove观察者。
刚开始学习的同学,往往会错误的认为应该先postNotificationName(发出信息),然后接受addObserver(接受信息)。其实这种想法是错误的。对于iOS通知,我们必须先addObserver(建立起接收信息的接口,或者说是渠道吧)然后等待信息传送过来。现面给出代码截图。
首先在第一个类中构建一个通知的接收者是self(也就是本类),接收后,响应一个事件(dachengge:)事件,我们通过@"zxc"来确定观察者的名字(只有name相同才可以接通),dachengge:方法中的obj是等待一会穿过来的参数接口,等待通知的发出者发出数据,我们这边接收到后,打印数据。
点击UIButton跳转到二级界面,看看二级几面的内容,并且在一级页面会有什么发生。
二级界面是通过通知名字“zxc”,发送了一个NSString类型的字符串(下面的打印数据其实是在第一个界面打印的,通过逻辑分析,nslog是在第一个界面调用的,也可以之道)。这就是通知的大体流程。
让我们最后回顾一边通知的流程,1,先建立好接收这,准备接收。2,发出者发出数据,界面响应。
题外话:说今题为神么在这里聊聊这么简单的东西,今天项目里面加了一个东西,就是类似于
这个小球上的那个8(新消息提示),并且是即时性的,也就是说这个界面加载好了,假入有一条新的数据,这个小红点就要变为九。那么我们在项目中应如何操作。
有一个可以点击的按钮,可以请求网络,或者一下可以上拉或下拉的refresh操作请求网络,才可以使得小红点改变。但是在我的这个项目里,这么操作是不可以的,没有一个按钮是让你去获取网络的,一个界面,加载完,你就什么都不准操作,静静的等着数据的到来,然后把小红点加一,那我们应如何操作~我给出了两个方案。
方案1、
后台推送后,在推送的onMethend方法中截取后台的数据推送,记录这次推送,然后发出通知,在相应页面正在开启的时候接到通知,数据加1
方案2、
使用kvo(key-value- observing)。
今天就说这么多了,这两天赶项目,脚打后脑勺了,周五,周六就没有发日志,以后会补回来的。
相关文章推荐
- iOS海哥开发笔记 (海哥原创,retain、strong、weak、assign区别)
- iOS小明开发笔记(八) (容易造成循环引用的三种场景)
- iOS开发之指纹识别
- iOS开发——判断邮箱格式
- iOS开发——MD5加密
- iOS小明开发笔记(七) (iOS设计模式—单例模式)
- iOS学习累积
- 请求数据返回值不能解析
- ios修改textField的placeholder的字体颜色和大小
- textfield监听删除按键 包括没有输入文字时(ios8 也可以使用)
- iOS开发启动页引导图
- ios开发之你真的了解了KVC吗?
- ios推送消息的基本原理--了解
- iOS开发7:自动旋转与调整大小
- ios开发UDP协议发送广播寻找设备
- 整理iOS常用的第三方框架
- ios开发UDP协议发送广播寻找设备
- 利用runtime 实现自定义Model归档
- iOS的远程消息推送服务。
- iOS 删除已经配置的类库和移除CocoaPods