IOS KVO与NSNotificationCenter简单使用
每次面试都被问到KVO或者通知。今天也自己来看了看通知。
1、NSNotificationCenter使用。
使用步骤:添加观察者、发送通知、移除观察者。
添加观察者:哪里需要接收通知,就在哪里加。例如:
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reciveNotfi:) name:@"testNot" object:nil];
发送通知:
[[NSNotificationCenter defaultCenter]postNotificationName:@"testNot" object:nil userInfo:@{@"value":dTF.text}];
接收数据在reciveNotfi处理。
-(void)reciveNotfi:(NSNotification *)sender{
NSDictionary *userInfo=sender.userInfo;
otherLabel.text=[userInfo objectForKey:@"value"];
}
移除观察者:
[[NSNotificationCenter defaultCenter]removeObserver:self name:@"testNot" object:nil];
注:name必须一致
参考链接:http://my.oschina.net/u/2340880/blog/406163
2 KVO
KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。
注:一定要是属性,私有变量是不可以的。属性赋值时不能用例如:_count=1;要用self.count=1;否则不生效。
使用步骤:添加观察者,数据处理,移除观察者
添加观察者:
[self addObserver:self forKeyPath:@"count" options:NSKeyValueObservingOptionNew context:nil];
注:被观察的对象的属性
数据处理:
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
if ([keyPath isEqualToString:@"count"]) {
//todo
}
}
移除观察者:
[self removeObserver:self forKeyPath:@"count"];
另外附上demo:https://github.com/LingZi123/KVOAndNSNotificationCenter.git
转载于:https://www.cnblogs.com/luojiao-lx/p/4977187.html
IOS KVO与NSNotificationCenter简单使用相关推荐
- IOS之通知NSNotificationCenter的使用
IOS之通知NSNotificationCenter的使用 KVO是IOS的重点,必须非常熟练 通知的写法很多,重点掌握NSNotificationCenter 在TabBarView 第一步 : 发 ...
- Socket在iOS客户端上的简单实现 - 利用GCAsyncSocket框架
Socket在iOS客户端上的简单实现 - 利用GCAsyncSocket框架 GCAsyncSocket 这是一个2003的开发出来的一个开源框架 首先把GCDAsyncSocket的.h和.m文件 ...
- ios kvo 要引入_iOS:KVO
本文仅是记录自己在学习的过程中的理解:如有错误,还望各位大佬指正,THX. KVO全称KeyValueObserving,是苹果提供的一套事件通知机制.允许对象监听另一个对象特定属性的改变,并在改变时 ...
- iOS开发UI篇—简单介绍静态单元格的使用
iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...
- 李洪强iOS开发之- 实现简单的弹窗
李洪强iOS开发之- 实现简单的弹窗 实现的效果: 112222222222223333333333333333
- iOS CoreImage之滤镜简单使用
代码地址如下: http://www.demodashi.com/demo/11605.html 老骥伏枥,志在千里 前记 最近一直在研究图像处理方面,既上一篇iOS Quart2D绘图之UIImag ...
- iOS开发-ZFPlayer的简单使用 播放单个网络视频
iOS开发-ZFPlayer的简单使用 播放单个网络视频 前言 开发准备 代码 注意 前言 关于ZFPlayer播放单个网络视频案例,它的网络列表视频案例在gitHub上面很多. 开发准备 podfi ...
- ios射击类游戏简单代码射击
ios射击类游戏简单代码射击 之后会持续的更新,学习的同学请关注,共同学习 main.c #import <Foundation/Foundation.h> #import "S ...
- [iOS]-KVO+KVC
目录: 参考的博客: KVO 什么是KVO KVO的基本使用 KVO使用注意事项 手动调用KVO KVO本质 NSKVONotifying_Apple内部实现 setter的实现不同 KVO部分相关问 ...
最新文章
- 前端中会用到的设计模式之单一职责原则
- 好好说说Java中的常量池之Class常量池
- 虚拟服务器能加内存吗,虚拟服务器可以加内存吗
- 2021-08-30 centos连接WiFi方法
- java解析xml实例_在java中使用dom解析xml的示例分析
- 第 十 一 天 : 复 习 完 ( 四 )
- 企业级IM应该帮助员工提高绩效,避免无关的信息干扰
- 10 条真心有趣的 Linux 命令
- 【java学习之路】(java SE篇)008.集合
- 深度学习——CNN、RNN、DNN汇总
- fastdfs安装部署
- 聊天工具机器人开发_聊天机器人-精致的交流工具? 还是您的客户服务团队不可或缺的成员?...
- 如何实现XA式、非XA式Spring分布式事务
- Idea 中图片资源无法加载问题
- 机器视觉实验二:道路车流量计数实验(OpenCV-python代码)
- php定时发布微博,使用sae定时任务实现终身自动发表微博(PHP实现)
- 不可错过的效能利器「GitHub 热点速览 v.22.39」
- 最新PHP超精简全站自适应小说网网站源码
- “新元宇宙”奇科幻小说原创作品系列连载《地球人奇游天球记》第三回零点惊魂
- VOT目标路径可视化
热门文章
- BZOJ4471 : 随机数生成器Ⅱ
- 【Ceres基本使用方法】使用Ceres拟合曲线求解最小二乘问题
- LInux下的交换分区以及相关查看命令
- python web开发框架 支持windows_基于Python的Web开发框架研究_曾浩
- html框架集frame是啥意思,HTML框架集frameset和内嵌框架iframe
- mysql 5.5 编译参数_mysql5.5编译安装
- 字符串函数-STUFF函数
- mysql repalication_MYSQL数据库知识点总结
- java 日期年度 35变2035_连接IBM MQ原因码报2035的错误解决办法
- spring boot示例_Spring Boot REST示例