KVO 小探

#import "ViewController.h"

@interface ViewController ()

@property (copy, nonatomic)  NSString *name;

@property (assign, nonatomic) NSInteger age;

 或者你这样

{

NSString *_name;

NSInteger _age;

}

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

SCViewController *svc = [[SCViewController alloc]init];

//用ViewController对象监听SCViewController对象的属性变化,那么该是这样

 //【被观察对象】 addObserver:【观察者】 forKeyPath:【被观察对象属性】 options:【选项 new or old】 context:【内容】;   其中【被观察对象属性】这个不能有下划线,无论你用@property声明属性或者用{}声明一个带下划线的成员变量。注册和移除要成对出现。。

[ svc addObserver:self forKeyPath:@"h" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:@"me"];//为svc注册一个观察者是ViewController对象的kvo

[svc setValue:@7 forKey:@"h"];

[svc removeObserver:self  forKeyPath:@"h"];//移除kvo

}

//触发kvo后的回调方法

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

NSLog(@"%@", keyPath);

NSLog(@"%@", change);

NSLog(@"%@", object);

NSLog(@"%@", context);

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

时间: 2024-11-07 06:49:55

KVO 小探的相关文章

[那些你所不知道的鬼畜写法]数据结构小探

我有种要出系列的节奏? 这次记一下我所遇到过的数据结构一些神奇的维护方法:  (只是记一下而已,也许会仔细讲讲) 1.差分大法 出自 zkw 大神 <统计的力量——线段树全接触>,运用面虽然不广,但每次用出来威力都是相当大 机智的减少你的代码量 2.保存操作而不是值 出自 clj 大神 在 WC 上对可追溯数据结构的论文(跪跪跪跪),虽然 OI 中应该(?)不会用到吗,但是思路还是很好的 只保存操作在很多时候效果非凡,以时间为权值维护一棵 splay 或是别的支持区间操作的平衡树,然后不但支持

数独解法小探

数独的游戏要求在一个9X9的格子内填入1~9的数字,使得每一行,每一列,以及九个3X3的子区域内都没有重复的数字. 稍作思索,我写出了第一种解法.从事后查询维基百科1来看,这种方法可以称之为回溯法.思路很简单,依次扫描每一个待填数字的空格: 1. 在第一个空格里面填上“1”,检查这个数字是否合法(其所在的行.列,以及3X3的子区域里不存在重复的数字).如果合法,则前进到第二个格子.否则,在这个格子里继续试2,3,… ,直到合法为止. 2. 在第二个格子里面继续填数字,从“1”开始试起,直到找到一

Linux——Virtualenv和pip小探

转载自:http://mengzhuo.org/blog/virtualenv%E5%92%8Cpip%E5%B0%8F%E6%8E%A2.html 本文献给那些看着参差不齐的中文文档/教程,但还在坚持折腾以上两个工具的童鞋. 声明:本人也是菜鸟,真正的有用的概念解释,请参看官方文档,以下都是我的个人理解. virtualenv 这里是导言吗? 用过Python的同学,肯定会对Python及程序的版本之间经常更换的api感到痛苦不以.就拿我折腾的Django来说吧,公司服务器上跑的是Django

SharedPreferences小探

突然想到个问题,SharedPreferences线程安全么?有没有使用缓存相关的技术? 首先想到的是Activity里面的: public abstract SharedPreferences getSharedPreferences(String name, int mode); 在android.content.Context中,我们首先找到简单的解释: The single SharedPreferences instance that can be used to retrieve a

爬虫小探-Python3 urllib.request获取页面数据

使用Python3 urllib.request中的Requests()和urlopen()方法获取页面源码,并用re正则进行正则匹配查找需要的数据. #forex.py#coding:utf-8 ''' urllib.request.urlopen() function in Python 3 is equivalent to urllib2.urlopen() in Python2 urllib.request.Request() function in Python 3 is equiva

REG小探

根键名称缩写对照表   常用数据类型 原文地址:https://www.cnblogs.com/feiyucha/p/10366927.html

iOS 中KVO的那点事

今天遇到点关于KVO小问题,纠结了半天.结果是出来了. 需求:监听UITableView数据的变化,一旦变化,就刷新UITableView. 很显然要用到KVO.数据是放到 @property (nonatomic, strong) NSMutableArray* data; 刚开始我是这么做的: 1,注册监听 - (void)viewDidLoad { [super viewDidLoad]; //KVO监听data的变化 [self addObserver:self forKeyPath:@

设计模式——结构型模式

设计模式的另一大类型为结构型.共收录了7个模式,分别为适配器模式.桥接模式.组合模式.装饰模式.外观模式.享元模式.代理模式.下面从特点和使用两方面小探,欢迎交流!      适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.[大话设计模式]        特点:需要交流的两方,在数据和行为都匹配,但接口不符时,我们应该考虑用适配器,目的是促使交流和复用.可以理解为入乡随俗,相同的意思,不同的表达

QtQuick 技巧

QtQuick 技巧 dpi property real dpi: Screen.pixelDensity.toFixed(2) 常用的 qmlproject /* File generated by Qt Creator */ import QmlProject 1.1 Project { mainFile: "main.qml" /* Include .qml, .js, and image files from current directory and subdirectori