4.KVO,KVO,通知之objective-c
来源:互联网 发布:java输出数组全部元素 编辑:程序博客网 时间:2024/06/06 19:24
KVC
[对象 setValue:aValue forKey:aKey];//为对象的aKey变量赋值
aValue = [对象 valueForKey:aKey];//把对象的aKey变量的值取出来
[对象 setValue:aValue forKeyPath:aKeyPath];//设置值
id aValue = [对象 valueForKeyPath:aKeyPath];//取值
注意:keyPath里边的变量!aKeyPath填 p.name之类的(可以很多点)
Demo:
Student *stu = [[Student alloc]init];
[stu setValue:@"张三"forKey:@"name"];//对对象变量赋值
NSString s1 = [stu valueForKey:@"name"];//变量值取出
[stu release];
KVO
1、注册监听
[被监听对象 addObserver:监听者
forKeyPath:被监听对象的属性
options:监视内容(新值或旧值)
context:额外信息];
2、监听者实现监听方法(在监听者的类里面实现,不实现会崩溃)
-(void)observerValueForKeyPath:(NSString*)keyPath ofObject:(id)object (被监听对象) change:(NSdictionary*)change(所监对象属性变化) context:(void*)context
3、监听触发条件
被监听对象的属性发生变化时 //自动调用下面的方法
Demo:
-(void)observerValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
{
NSLog:(@"keyPath:%@ object:%@ change:%@ context:%@ ",keyPath,object,change,context); //可以在这方法里实现想做的事 比如发送通知
}
Student *stu = [[Student alloc]init];
stu.name = @"张三";
【stu addObserver self forKeyPath :@"name" options:NSKeyValueObservingOptionNew context:nil】;
stu.name = @"李四"; //值改变调用方法
stu.name = @"王五"; //值改变有调用方法
【stu release】;
通知
1、获得通知中心对象
NSNotificationCenter *center= [NSNotificationCenter defaultCenter]; //单例实际是获得通知中心的地址
2、监听通知
[center addObserver :监听者 selector:须执行的方法 name:所监听者通知的名称 object:通知发送者];
3、通知中心发布消息
[center PostNotificationName:@"国王万岁" object:某人];
4.移除监听中心
[center removeObserver:self name:@"国王万岁" object:某人];
Demo:
King *king = [[King alloc]init];
Farmer *farmer = [[Farmer alloc]init];
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:farmer selector:@selector(test:) name:@"国王万岁" object:king];
[center postNotificationName:@"国王万岁" object:king];
[center removeObserver:farmer];
[king release];
[farmer release];
-(void)test:(NSNotification*)n //方法必须实现在监听通知的类里面 做想做的事
{
NSLog(@"name:%@ object:%@ userInfo:%@",[nname],[nobject],[n userInfo]);
}
- 4.KVO,KVO,通知之objective-c
- 4.KVO,KVO,通知之objective-c
- objective-c介绍之 KVO,KVO,通知
- Objective-c KVC and KVO and 通知
- Objective-C 之 KVO 详解
- Objective-C之KVC、KVO
- Objective-C之KVC、KVO
- Objective-C KVC - KVO
- Objective-C KVO&KVC
- Objective-C KVO 编程
- objective-c kvo
- Objective-C KVO
- objective-c KVO机制
- Objective-C KVC&KVO
- Objective-C语法之KVO的使用
- Objective-C语法之KVO的使用
- Objective-C语法之KVO的使用
- Objective-C语法之KVO的使用
- win7指纹登录一直请等待
- C++多核高级编程 - 09 并发模型之 一 Boss-Worker
- HDU OJ 1269 迷宫城堡【有向图强连通分量的Tarjan算法 入门】
- 各软件开发版本详解
- 坚持自己的选择
- 4.KVO,KVO,通知之objective-c
- 线程的stop
- java中StringBuffer和StringBuilder的区别
- PHP正则表达式 模式参数详解
- priority_queue用法
- 腾讯二面情况,9月份找工作的童鞋进
- 莫邪之asm详解
- [笔记]C语言中关于getch()
- Tips:Free Image 读取GIF图像,参数选择