当前位置: 首页 > news >正文

KVO 键值观察者

KVO(键值观察者)

//监听的创建

-(id)initChildren:(Person *)person

{

    self = [super init];

    if (self != nil) {

        //拥有所有权,防止被自动释放

       // _person = [person retain];

        self.person = _person;

        

        [_person addObserver:self forKeyPath:@"happyVal" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:@"xxx"];

        

        

    }

    return self;

    

}

//移除监听器

-(void)dealloc

{

    [_person removeObserver:self forKeyPath:@"happyVal"];

    [_person release];

 

    [super dealloc];

}

//监听变化,显示变化

- (void)observeValueForKeyPath:(NSString *)keyPath

                      ofObject:(id)object

                        change:(NSDictionary *)change

                       context:(void *)context

{

    NSLog(@"change :%@",change);

}

//监听要改变的对象 ,  self.改变的对象名  或则是 kvc(注意点这两边的key记得要一致) 定义 不能使用 _对象名直接改变对象值,这这样KVO是没有办法监听它变化的

 

 

//通知

//发出通知

[NSNotificationCenter defaultCenter]postNotificationName:定义的通知名 object:要发送的对象

 

//接收通知

[NSNotificationCenter  defaultCenter]addObserver:self selector:@selector:(action:) name:这是定义的通知方式名 object:nil];

-(void) action:(NSNotification *)notification{

}

转载于:https://www.cnblogs.com/meixian/p/5370952.html

相关文章:

  • 复制含有随机指针节点的链表
  • Android 文件式数据库Realm
  • mobAndroid免费验证短信
  • 【css3】浏览器内核及其兼容性
  • 一个苹果开发者的苹果表体验报告
  • 责任链模式
  • C 数据结构与算法系列 插入排序
  • spring-001-Ioc 顶层容器
  • Android自动化测试之Monkeyrunner使用方法及实例
  • 【案例】slave_net_timeout 问题一则
  • Node+Express+node-mysql 实战于演习 全套mysql(增删改查)
  • 我与mongodb 二三事(2)
  • 失眠的症状是什么
  • 20145222黄亚奇《Java程序设计》实验二实验报告
  • TaskCompletionSource的使用场景
  • [PHP内核探索]PHP中的哈希表
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【5+】跨webview多页面 触发事件(二)
  • 2017-08-04 前端日报
  • HTTP 简介
  • Invalidate和postInvalidate的区别
  • k8s如何管理Pod
  • Nacos系列:Nacos的Java SDK使用
  • React Transition Group -- Transition 组件
  • SQLServer之创建数据库快照
  • web标准化(下)
  • 编写高质量JavaScript代码之并发
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 那些被忽略的 JavaScript 数组方法细节
  • 排序算法之--选择排序
  • 删除表内多余的重复数据
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 线上 python http server profile 实践
  • 智能合约Solidity教程-事件和日志(一)
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ionic异常记录
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • #图像处理
  • $(function(){})与(function($){....})(jQuery)的区别
  • (07)Hive——窗口函数详解
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (Forward) Music Player: From UI Proposal to Code
  • (zhuan) 一些RL的文献(及笔记)
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)Oracle存储过程编写经验和优化措施
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .net core开源商城系统源码,支持可视化布局小程序