文章标题
2015-12-12 17:04
281 查看
**ViewController** #import "ViewController.h" #import "Person.h" @interface ViewController () //首先要有一个类,kvo是监听 某个类 的 某个属性 的值变化 @property (nonatomic, retain) Person *person; //定义一个属性 @end @implementation ViewController
- (void)viewDidLoad { [super viewDidLoad]; //******* KVC : key value code 键值编码 ,间接给属性赋值 *********************** // kvc 还能间接给系统属性赋值, 还可以用kvc给系统只读的属性赋值 [self.view setValue:[UIColor orangeColor] forKey:@"backgroundColor"]; self.person = [[Person alloc]init]; [self.person setValue:@"林翰" forKey:@"name"]; // 给属性赋值 [self.person setValue:@"23" forKeyPath:@"age"]; // 根据路径给属性赋值 // [self.person setValue:@"马强" forKeyPath:@"stu.stuName"]; // ******** KVO : key value observing 键值观察者 ***************** // 是用来观察属性值变化的,不仅仅可以观察自定义类的属性,也可以观察系统属性值变化 // 注册当前类对象为观察者, 观察Person属性变化 // 参数1: 设置观察者 self // 参数2: 设置观察属性 // 参数3: 观察值的状态 // 参数4: 设置观察值的内容 [self.person addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:@"观察Person的name值"]; }
// 点击按钮更改 属性值 - (IBAction)kvoButton:(UIButton *)sender { [self.person setValue:@"大哥" forKey:@"name"]; }
// 当前属性值发生变化时触发的方法 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context { NSLog(@"\n\n\n"); if ([keyPath isEqualToString:@"name"]) { NSLog(@"keyPath = %@", keyPath); NSLog(@"object = %@", object); NSLog(@"change = %@", change); NSLog(@"context = %@", context); } }
**Person 类** person.h文件里 #import <Foundation/Foundation.h> #import "Student.h" @interface Person : NSObject @property (nonatomic, copy) NSString *name; /**< Preson姓名 */ @property (nonatomic, assign) NSInteger age; /**< 年龄 */ @end
相关文章推荐
- Spring org.springframework.web.client.RestTemplate乱码
- 同步、异步、阻塞和非阻塞
- velocity .vm
- onenote sent to csdn
- C#_Stack的使用方法
- 在本机快速创建YUM源
- 修改Textfield中占位符字体的颜色
- 实现一个函数判断year是不是润年
- 搭建基于Github Pages和Jekyll的个人博客
- JDK8.0学习体会--从python的lambda类比java的lambda
- java开发俄罗斯方块学习笔记 Day-1 分析
- 不可理喻的JSTL标签库
- Android学习笔记之使用百度地图实现Poi搜索
- Camera 小结
- 实现一个函数,判断一个数是不是素数
- find your present (2)
- 招财宝的分析和研究
- 房间计费系统改造——数据库设计
- python学习笔记
- 知识点总结