KVO监听者

监听者模式方便的监听所需要的值得变化

@implementation ViewController

- (IBAction)Buton:(id)sender {

self.view.backgroundColor=[UIColor redColor];

}

- (void)viewDidLoad {

[super viewDidLoad];

self.model=[[Model alloc]init];

//第一个参数是 被监听者

//第二个参数是  监听者

//第三个参数是  监听内容

//第四个参数是   监听的状态变化

//

[self.view addObserver:self forKeyPath:@"backgroundColor" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];

[self.model addObserver:self forKeyPath:@"age" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];

self.model.age=@"18";

self.model.age=@"12";

// Do any additional setup after loading the view, typically from a nib.

}

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

if ([keyPath isEqualToString:@"age"]) {

NSLog(@"01%@",keyPath);

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

NSLog(@"03%@",object);

NSLog(@"04%@",context);

}

}

时间: 2024-10-11 07:39:38

KVO监听者的相关文章

EntityFramework之监听者判断SQL性能指标

前言 当我们利用EF这个ORM框架时,我们可能会利用LINQ或者原生的SQL语句来进行数据操作,此时我们无法确定我们的代码是否会给数据库带来一定的负载,当给数据库带来一定的压力时,由于项目中对数据进行相应的操作实在是太多,我们无法准确的去进行定位,又或者我们不是专业的DBA,无法准确的去分析SQL性能的优劣,此时该怎么办呢?我们完全不需要DBA,我们可以通过相应的操作来判断一段SQL代码的好坏,这就是我们本节需要讲的内容,利用EF中监听者来判断SQL性能,在之前系列中也有提到,可以参考之前系列.

KVO监听

Main.m #import "Children.h" #import "Nurse.h" int main(int argc, const char * argv[]) { Children *children = [[Children alloc] init]; Nurse *nurse = [[Nurse alloc] initWithChildren:children]; [[NSRunLoop currentRunLoop] run]; [children

监听者

在web系统中,HttpServletRequest.HttpSession.ServletContext对象在web容器中遵循生成.运行.销毁这样的生命周期.当进行相关的监听配置后,web容器就会调用监听器上的方法,进行对应的事件处理. 1.监听接口和事件类 2.如何告诉容器有一个监听者 有两种方法可以进行监听者的配置,一种是在DD中配置,如果需要上下文初始化参数,也要在DD中配置: 在servlet 3.0中,可以利用注入的方式注入监听类(虽然监听器和过滤器不是servlet,但是它们都在同

Web应用中监听者的通知顺序按照DD中的定义顺序

Web应用中监听者的通知顺序按照DD中的定义顺序: XML: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http:/

【Head First Servlets and JSP】笔记8:监听者

1.你不用了解所有监听者API,并不多,一共有8个.不过,你需要知道你能监听什么,以便在需要的时候可以查. 2.关于Session和Cookie.参见JavaWeb学习总结(十二)——Session by 孤傲苍狼 3.HttpSessionBindingListener 这是一个非常有用的监听者,为什么说它有用呢?因为它可以协助我们同步实际对象和数据库的信息.例如: package com.example; import javax.servlet.http.HttpSessionBindin

iOS: 使用KVO监听控制器中数组的变化

一.介绍: KVO是一种能动态监听到属性值的改变的方式,使用场景非常广泛,这里我只讲如何监听控制器ViewController中数组的变化. 二.了解: 首先我们应该知道KVO是不能直接监听控制器ViewController数组的变化的,需要将数组定义在模型中,然后控制器ViewController持有模型对象,通过该对象才能监听. 三.步骤: <1>在控制器ViewController类中定义一个模型类Model,并在该类中声明一个可变的数组属性modelArray并进行懒加载,其实它最终就

监听者模式

监听者模式是观察者模式实现的一种,也属于Publish/Subscribe模式,被监听者触发某一事件后向监听者发送通知.在java中最常用的就是在编写GUI程序时,控件的事件监听了. 通常在编写java的GUI程序时,需要在控件上注册一个监听器,这个监听器需要开发人员自己编写,当控件被监听的事件触发后,监听器也会做出响应的反应. Frame frame = new Frame("java"); frame.setBounds(400, 300, 300, 200); frame.set

设计模式(二)观察者监听者模式

基于MAP线程安全的观察者监听者模式 1 #include<map> 2 #include<string> 3 #include<vector> 4 #include<iostream> 5 #include<memory> 6 using namespace std; 7 8 class Listener 9 { 10 public: 11 Listener(string name):_name(name){} 12 virtual void

用KVO监听控件属性的改变(observeValueForKeyPath)

创建一个测试的UIButton #import "ViewController.h" @interface ViewController () @property(nonatomic, strong)UIButton *button; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.button = [[UIButton alloc] initWithFrame:CG