zoukankan      html  css  js  c++  java
  • B3-KVO概念(待续)

    一、定义

         KVO就是key-value observing,即键值观察。同样也是观察者模式,主要的用处是监听对象属性的变化。KVO和KVC被称为cocoa的大招。
    二、使用
    // 1、添加监听方法
    [self.p addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:@"hello world"];
    /*
     参数
     1. 监听对象,即观察者
     2. 监听的键值路径->属性
     3. 监听选项
     4. 上下文- 因为可以监听多个对象的键值变化,通过上下文可以更好区分开!
    */
     // 2、所有KVO监听到的事件变化,都会执行此方法
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
        NSLog(@"%@ %@ %@ %@", keyPath, object, change, context);
    }
    // 1、keyPath:被监听的属性
    // 2、object:被监听的属性
    // 3、change:字典
    // 4、context:上下文

    三、特点:

        1、所有变化都会调用统一的监听方法!

        2、KVO 是同步的。

        3、使用KVO要注意多个线程如果要修改同一个对象的属性,多线程抢夺资源,会增加程序编码的难度。

        4、KVO用处,如果不涉及多线程,只是简单监听某一个对象的属性变化,使用KVO代码相对还是简单一些。

  • 相关阅读:
    C# 中的高性能计时器(Daniel Strigl著,野比译)(转)
    C#中SerialPort类 随笔
    迭代器
    枚举数与可枚举类型(笔记)
    jQuery的关注与学习
    敏捷开发的4句宣言 大数据
    bat脚本
    c++动态库中回调函数使用
    C++中遍历lua table
    vs2010编译release版本却依赖debug版本库msvcrd100.dll
  • 原文地址:https://www.cnblogs.com/yaann/p/4221119.html
Copyright © 2011-2022 走看看