• OC-KVO简介


    一,概述

    KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。

    二,使用:

    1.kVC即键值、编码 KVO即键值、观察者

    
        model的对象初始化self.modelA = [[Model alloc] init];
    
        //设置Model类里面的属性值  这部分就是KVC,键值编码。即对属性赋值
        [self.modelA setValue:@"xiaonan" forKey:@"name"];
        [self.modelA setValue:[NSNumber numberWithInt:20] forKey:@"num"];
        //设置观察者,键值观察是建立在键值编码的基础之上的。只要name属性赋值改变就会调用回调方法
        [self.modelA addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:nil];

    //KVO观察者的回调方法

    -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
    {
        if ([keyPath isEqualToString:@"name"]) {
            NSLog(@"%@",[self.modelA valueForKey:@"name"]);
        }
    }

    例如后来改变键值属性

    -(IBAction)buttonAction:(id)sender
    {
        [self.modelA setValue:@"you" forKey:@"name"];
    
    }

    就会触发观察者的回调方法

    然后在使用完这个方法的时候,我们需要注销这个观察者:

    [self.modelA removeObserver:self forKeyPath:@"name"];
  • 相关阅读:
    git 生成公钥与私钥
    Swagger PHP使用指南
    数据库需要支持emoji表情
    Lumen实现用户注册登录认证
    Laraver 框架资料
    php curl请求。header头中添加请求信息
    linux 下看所有用户 及所有组
    瀑布流下滑 发送ajax
    Linux系统中的wc
    Nginx 日志分析及性能排查
  • 原文地址:https://www.cnblogs.com/AbeDay/p/5026922.html
Copyright © 2020-2023  润新知