zoukankan      html  css  js  c++  java
  • KVO

    •基本概念

          Key Value Observing, 键值观察者。它提供一种机制,当指定的对象的属性被修改后,则对象就会接收到通知。

         与NSNotification不同,键值观察中并没有中心对象来为所有的观察者提供变化通知,取而代之,当有变化发生时,通知被直接发送至处于观察状态的对象。NSObject提供这种基础的键值观察实现方法

    KVO  注册观察者

          为了正确接收属性的变更通知,观察对象必须首先发送一个addObserver:forKeyPath:options:context:消息至被观察对象。用以传送观察对象和需要观察的属性的路径

          NSKeyValueObservingOptionOld选项可以将初始对象值,以变更字典中的一个项形式提供给观察者。指定NSKeyValueObservingOptionNew选项将新的值以一个项的形式添加到变更字典,可以采用”|”来指定接收上述两种类型的值

        [child addObserver:self forKeyPath:@”tired”          options:NSKeyValueObservingOptionOldNSKey|ValueObservingOptionNew

                 context:nil];

    KVO 接收变更通知

          当对象的一个被观察属性发生变动时,观察者收到一个observeValueForKeyPath:ofObject:change:context消息。所有观察者都必须实现这一方法oberveValueForKeyPath。

    -(void) :(NSString*)keyPath   ofObejct:(id)object    change:(NSDictionary *)change  context:(void *)c{

             if([keyPth isEqual:@”key”])  {

                         NSLog(@”%@”,change);

                 }

    }

    KVO 移除观察者身份 

    你可以发送一条指定观察方对象和建路径的removeObserver:forKeyPath:消息至被观察的对象,来移除一个键-值观察者(一般放在dealloc方法里面)

             [child removeObserver:self forKeyPath:@”key”];

    KVO 案例

    • 对象  孩子、护士
    •  护士需要对孩子的体温进行观察
    •  建立观察者模式,当孩子的体温发送变化时回调给护士进行处理

    1.  建立一个孩子模型

    2.建立一个护士模型

    (1)

      

     (2) 在.m文件里写

  • 相关阅读:
    计算公式以及参数数量计算
    sqlmap查找SQL注入漏洞入门
    动态密码卡TOTP算法
    使用windbg分析iis崩溃的一个实例
    windbg加载sos.dll
    wndbg下载与安装
    windbg入门
    IIS崩溃时自动抓取Dump
    net组件转化成COM组件
    dokuwiki安装部署
  • 原文地址:https://www.cnblogs.com/chenzq12/p/6214702.html
Copyright © 2011-2022 走看看