码迷,mamicode.com
首页 > 其他好文 > 详细

KVO与KVC

时间:2015-11-19 00:31:37      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

KVC是键值编码,只要是继承了NSObject的对象都支持kvc,由于NSObject支持一个NSKeyValueCoding的非正式协议

 [_receivedData setValue:@"moxue" forKey:@"name"];//修改值
 [_receivedData valueForKey:@"name"];//查看值

KVO键值观察,当键值对发生改变时,通过新建一个观察键值,在被观察对象发生改变时,来做出事件响应。

    [[NSUserDefaults standardUserDefaults]setValue:@"myname" forKey:@"myname"];//设置键值
    [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:@"myname" options:NSKeyValueObservingOptionNew context:nil];//对其进行键值观察,通过设置NSKeyValueObservingOptionNew参数,设置观察的值为最新数据
    [[NSUserDefaults standardUserDefaults] setValue:@"haha" forKey:@"myname"];//改变键值对


-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context
{
    //keyPath为键值的Key,change参数储存改变的值的字典。
    if ([keyPath isEqualToString:@"myname"]) {
        NSLog(@"%@",[change valueForKey:@"new"]);//取出NSKeyValueObservingOptionNew最新数据。
    }
}

 

KVO与KVC

标签:

原文地址:http://www.cnblogs.com/moxuexiaotong/p/4976325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!