每次面试都被问到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简单使用相关推荐

  1. IOS之通知NSNotificationCenter的使用

    IOS之通知NSNotificationCenter的使用 KVO是IOS的重点,必须非常熟练 通知的写法很多,重点掌握NSNotificationCenter 在TabBarView 第一步 : 发 ...

  2. Socket在iOS客户端上的简单实现 - 利用GCAsyncSocket框架

    Socket在iOS客户端上的简单实现 - 利用GCAsyncSocket框架 GCAsyncSocket 这是一个2003的开发出来的一个开源框架 首先把GCDAsyncSocket的.h和.m文件 ...

  3. ios kvo 要引入_iOS:KVO

    本文仅是记录自己在学习的过程中的理解:如有错误,还望各位大佬指正,THX. KVO全称KeyValueObserving,是苹果提供的一套事件通知机制.允许对象监听另一个对象特定属性的改变,并在改变时 ...

  4. iOS开发UI篇—简单介绍静态单元格的使用

    iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  5. 李洪强iOS开发之- 实现简单的弹窗

     李洪强iOS开发之- 实现简单的弹窗 实现的效果:  112222222222223333333333333333

  6. iOS CoreImage之滤镜简单使用

    代码地址如下: http://www.demodashi.com/demo/11605.html 老骥伏枥,志在千里 前记 最近一直在研究图像处理方面,既上一篇iOS Quart2D绘图之UIImag ...

  7. iOS开发-ZFPlayer的简单使用 播放单个网络视频

    iOS开发-ZFPlayer的简单使用 播放单个网络视频 前言 开发准备 代码 注意 前言 关于ZFPlayer播放单个网络视频案例,它的网络列表视频案例在gitHub上面很多. 开发准备 podfi ...

  8. ios射击类游戏简单代码射击

    ios射击类游戏简单代码射击 之后会持续的更新,学习的同学请关注,共同学习 main.c #import <Foundation/Foundation.h> #import "S ...

  9. [iOS]-KVO+KVC

    目录: 参考的博客: KVO 什么是KVO KVO的基本使用 KVO使用注意事项 手动调用KVO KVO本质 NSKVONotifying_Apple内部实现 setter的实现不同 KVO部分相关问 ...

最新文章

  1. 前端中会用到的设计模式之单一职责原则
  2. 好好说说Java中的常量池之Class常量池
  3. 虚拟服务器能加内存吗,虚拟服务器可以加内存吗
  4. 2021-08-30 centos连接WiFi方法
  5. java解析xml实例_在java中使用dom解析xml的示例分析
  6. 第 十 一 天 : 复 习 完 ( 四 )
  7. 企业级IM应该帮助员工提高绩效,避免无关的信息干扰
  8. 10 条真心有趣的 Linux 命令
  9. 【java学习之路】(java SE篇)008.集合
  10. 深度学习——CNN、RNN、DNN汇总
  11. fastdfs安装部署
  12. 聊天工具机器人开发_聊天机器人-精致的交流工具? 还是您的客户服务团队不可或缺的成员?...
  13. 如何实现XA式、非XA式Spring分布式事务
  14. Idea 中图片资源无法加载问题
  15. 机器视觉实验二:道路车流量计数实验(OpenCV-python代码)
  16. php定时发布微博,使用sae定时任务实现终身自动发表微博(PHP实现)
  17. 不可错过的效能利器「GitHub 热点速览 v.22.39」
  18. 最新PHP超精简全站自适应小说网网站源码
  19. “新元宇宙”奇科幻小说原创作品系列连载《地球人奇游天球记》第三回零点惊魂
  20. VOT目标路径可视化

热门文章

  1. BZOJ4471 : 随机数生成器Ⅱ
  2. 【Ceres基本使用方法】使用Ceres拟合曲线求解最小二乘问题
  3. LInux下的交换分区以及相关查看命令
  4. python web开发框架 支持windows_基于Python的Web开发框架研究_曾浩
  5. html框架集frame是啥意思,HTML框架集frameset和内嵌框架iframe
  6. mysql 5.5 编译参数_mysql5.5编译安装
  7. 字符串函数-STUFF函数
  8. mysql repalication_MYSQL数据库知识点总结
  9. java 日期年度 35变2035_连接IBM MQ原因码报2035的错误解决办法
  10. spring boot示例_Spring Boot REST示例