KVC与KVO

KVC: Key Value Coding, 常见作用:给模型属性赋值

+ (instancetype)dealWithDict:(NSDictionary *)dict
{
    TWDeal *deal = [[self alloc] init];
    
//    deal.title = dict[@"title"];
//    deal.icon = dict[@"icon"];
//    deal.buyCount = dict[@"buyCount"];
//    deal.price = dict[@"price"];
    
    // KVC - Key Value Coding
    [deal setValuesForKeysWithDictionary:dict];
    
    return deal;
}

KVO: Key Value Observing, 常用作用:监听模型属性值的改变

self.p1 = [[TWPerson alloc] init];
self.p1.name = @"p1";
self.p1.name = @"pppp1";
 [self.p1 addObserver:self forKeyPath:@"name" options: NSKeyValueObservingOptionOld context:nil];

- (void)dealloc
{
    [self.p1 removeObserver:self forKeyPath:@"name"];
}

#pragma mark - KVO监听方法
/**
 * 当监听到object的keyPath属性发生了改变
 */
//keyPath:属性名称
//object:被观察的对象
//change:变化前后的值都存储在change字典中
//context:注册观察者时,context传过来的值
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSLog(@"监听到%@对象的%@属性发生了改变, %@", object, keyPath, [change valueForKey:NSKeyValueChangeNewKey]);
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • KVC 什么是 KVC KVC 是 Key-Value-Coding 的简称。 KVC 是一种可以直接通过字符串的...
    LeeJay阅读 6,551评论 6 41
  • KVC: KVC也就是key-value-coding,即键值编码,通常是用来给某一个对象的属性进行赋值,例如有人...
    春暖花已开阅读 3,392评论 0 3
  • KVC-键值编码(Key Value Coding) 动态设置:setValue:属性值 forKey:属性名(用...
    来金德瑞阅读 3,474评论 0 2
  • 一、KVC KVC(Key Value Coding):键值编码 1.赋值 对一个对象调用setValue:for...
    Coulson_Wang阅读 3,034评论 0 0
  • 【晨启读书】20171106--《让电影陪伴孩子成长》学而思1/5 周一开启新的带读书目,我也是迫不及待的打开来听...
    235cfa1475f3阅读 1,751评论 0 0

友情链接更多精彩内容