广州双城热恋创意文化传播有限公司

现在的位置: 主页 > 商讯 > 文章列表

文章正文

iOS KVC补充及实例

作者:广州双城热恋创意文化传播有限公司 来源:www.666loveyou.com 发布时间:2017-09-08 18:12:10
iOS KVC补充及实例 KVC 补充及实例 怎么获取值 和 修改值—–>How - (void)setValue:(id)value forKey:(NSString *)key - (id)valueForKey:(NSString *)key - (id)valueForKey:(NSString *)key //以 key 作为标示符,获取其对应的属性值 - (void)setValue:(id)value forKey:(NSString *)key //以 key 作为标示符设置其对应的属性值 - (id)valueForUndefinedKey:(NSString *)key - (void)setNilValueForKey:(NSString *)key ``` Demo 创建一个QYPerson 类继承于 NSObject QYPerson.h ``` #import @interface QYPerson : NSObject @property (nonatomic, strong) NSString *name; @property (nonatomic, assign) int age; - (void)changeName; @end

在 QYPerson.m 文件中实现上面的方法

#import QYPerson.h @implementation QYPerson - (void)changeName _name = @changeName; @end

创建一个 QYPersonMonitor 的类用来监视 QYPerson 中的 name 属性
在. m 文件中实现对 QYPerson 中 name 属性的监视

#import QYPersonMonitor.h @implementation QYPersonMonitor // 2. 回调的方法 当观察的值改变的时候,该方法会被调用 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if ([keyPath isEqual:@name]) NSLog(@change name: old :%@, new : %@,[change objectForKey:NSKeyValueChangeOldKey],[change objectForKey:NSKeyValueChangeNewKey]); } @end

在控制器中初始化监视的对象以及被监视的对象,注册观察者

#import ViewController.h #import QYPerson.h #import QYPersonMonitor.h @interface ViewController () @property (nonatomic, strong) QYPerson *person; @end @implementation ViewController - (void)viewDidLoad [super viewDidLoad]; //初始化被监视的对象 _person = [[QYPerson alloc] init]; _person.name = @zhangsan; _person.age = 18; //监视对象 QYPersonMonitor *personMonitor = [[QYPersonMonitor alloc] init]; // 1. 注册了一个观察者 [_person addObserver:personMonitor forKeyPath:@name options:NSKeyValueObservingOptionNew @end

打印结果如下:
**2015-07-29 16:38:59.802 SetDemo[3764:1391043] person’s name is zhangsan
2015-07-29 16:38:59.802 SetDemo[3764:1391043] change name: old :zhangsan, new : (lisi by KVC)
2015-07-29 16:38:59.802 SetDemo[3764:1391043] person’s name get by kvc is (lisi by KVC)
2015-07-29 16:38:59.802 SetDemo[3764:1391043] change name: old :(lisi by KVC), new : name change by .name= wangwu**

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:黄石SEO http://huangshi.raoyu.net


COPYRIGHT © 2015 广州双城热恋创意文化传播有限公司 ALL RIGHTS RESERVED.
网站地图 技术支持:肥猫科技
精彩专题:网站建设
购买本站友情链接、项目合作请联系客服QQ:2500-38-100