ios KVO
来源:互联网 发布:linux sz查看进度 编辑:程序博客网 时间:2024/05/22 11:48
**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
0 0
- ios kvo
- IOS KVO
- ios KVO
- iOS KVO
- IOS kvo
- iOS--KVO
- iOS --KVO
- ios kvo
- ios KVO
- iOS-KVO
- iOS --KVO
- iOS --- KVO
- iOS KVO
- ios-KVO
- ios学习--kvo/kvc
- ios学习--kvo
- IOS KVO使用小结
- iOS KVC KVO KVB
- IOS UITextView 自动选中一段文本
- animation-timing-function 之 step
- Spring org.springframework.web.client.RestTemplate乱码
- 学习opencv(2)——cvSave和cvLoad
- hackthegame<第一关>
- ios KVO
- java图形程序设计之框架搭建
- javascript自定义函数
- 项目框架从tomcat移植到weblogic
- springmvc @ResponseBody 返回中文乱码
- iOS面试题-objective-c
- 内容提供器(1)/2 内容提供器读取联系人
- [javase学习笔记]-3.1 if语句
- UML——构件图、部署图