kvo深入浅出举例
一,概述
{
NSString *_name;
float _price;
}
{
return [NSString stringWithFormat:@"name:%@,price:%f",_name,_price];
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"keyPath:%@,object:%@,change:%@",keyPath,object,change);
self.strock = [[Strock alloc]init];
//给属性赋值
[self.strock setValue:@"baidu" forKey:@"_name"];
[self.strock setValue:@155 forKey:@"_price"];
//设置person为观察者
[self.strock addObserver:self.person forKeyPath:@"_price" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
}
//拖进来一个点击 事件 当button点击的时候
- (IBAction)priceClicked:(UIButton *)sender {
NSInteger price = [[self.strock valueForKey:@"_price"]floatValue];
[self.strock setValue:@(price+1) forKey:@"_price"];
}
//移除观察者
-(void)dealloc
{
[self.strock removeObserver:self.person forKeyPath:@"_price" context:nil];
kvo深入浅出举例的更多相关文章
- [深入浅出Cocoa]详解键值观察(KVO)及其实现机理
		
一,前言 Objective-C 中的键(key)-值(value)观察(KVO)并不是什么新鲜事物,它来源于设计模式中的观察者模式,其基本思想就是: 一个目标对象管理所有依赖于它的观察者对象,并在它 ...
 - KVO 的使用和举例
		
KVO(key-value Observer),通过命名可以联想到,一个监视着监视着键值配对,让一个对象A来监视另一个对象B中的键值,一旦B中的受监视键所对应的值发生了变化,对象A会进入一个回调函数, ...
 - 【深入浅出jQuery】源码浅析2--奇技淫巧
		
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
 - [Machine Learning & Algorithm]CAML机器学习系列2:深入浅出ML之Entropy-Based家族
		
声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 写在前面 记得在<Pattern Recognition And Machine ...
 - [Machine Learning & Algorithm]CAML机器学习系列1:深入浅出ML之Regression家族
		
声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 符号定义 这里定义<深入浅出ML>系列中涉及到的公式符号,如无特殊说明,符号 ...
 - KVC 和 KVO
		
KVC 键值编码 全称是Key-value coding,翻译成键值编码.它提供了一种使用字符串而不是访问器方法去访问一个对象实例变量的机制. 1.通过key(成员变量的名称)设置 ...
 - 深入浅出JMS(二)--ActiveMQ简单介绍以及安装
		
现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了消息通信的规范JM ...
 - VC++动态链接库(DLL)编程深入浅出(zz)
		
VC++动态链接库(DLL)编程深入浅出(zz) 1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用 ...
 - KVC/KVO原理详解及编程指南
		
一.简介 1.KVC简介 2.KVO简介 二.KVC相关技术 1.Key和Key Path 2.点语法和KVC 3.一对多关系(To-Many)中的集合访问器方法 4.键值验证(Key-Value V ...
 
随机推荐
- lc面试准备:Reverse Bits
			
1 题目 Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represente ...
 - LeetCode解题报告:Insertion Sort List
			
Insertion Sort List Sort a linked list using insertion sort. leetcode subject思路:标准的插入排序.考察一下链表的操作. 对 ...
 - 《Effective C++》条款26 防卫潜伏的ambiguity模棱两可的状态
			
每个人都有思想.有些人相信自由经济学,有些人相信来生.有些人甚至相信COBOL是一种真正的程序设计语言.C++也有一种思想:它认为潜在的二义性不是一种错误.ambiguity 这是潜在二义性的一个例子 ...
 - 【转】android: 长按删除listview的item
			
原文网址:http://www.cnblogs.com/nuistlr/archive/2012/09/07/2675649.html 首先要继承OnItemLongClickListener pub ...
 - Spark如何解决常见的Top N问题
			
需求 假设我们有一张各个产品线URL的访问记录表,该表仅仅有两个字段:product.url,我们需要统计各个产品线下访问次数前10的URL是哪些? 解决方案 (1)模拟访问记录数据 ...
 - tabhost中activity跳转动画不显示的解决办法
			
[1]如果是tabhost中的activity跳到其他的activity,用这篇blog的方法即可 http://blog.sina.com.cn/s/blog_8db8914301010t31.ht ...
 - ecshop格式化商品价格
			
<?php /** * 格式化商品价格 * * @access public * @param float $price 商品价格 * @return string */ function pr ...
 - [置顶] IOS 基础入门教程
			
IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...
 - Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level(转)
			
[问题] 一个python脚本,本来都运行好好的,然后写了几行代码,而且也都确保每行都对齐了,但是运行的时候,却出现语法错误: IndentationError: unindent does not ...
 - Android中的主题Theme
			
系统自带的Theme: android以及为我们定义好了一些theme,需要是我们直接可以拿来使用. 常用的Theme通常如下: android:theme="@android:style ...