zoukankan      html  css  js  c++  java
  • IOS 杂笔- 6(KVC-KVO)

    kvc:

    键值编码的基本概念

          1:键值编码是一个用于间接访问对象属性的机制,使用该机制不需要调用存取方法和变量实例就可以访问对象属性。

          2:键值编码方法在Objective-C非正式协(类别)NSKeyValueCoding中被声明,默认的实现方法由NSObject提供。

          3:键值编码支持带有对象值的属性,同时也支持数值类型和结构。非对象参数和返回类型会被识别并自动封装/解封。

        KVC 再某种程度上提供了访问器的替代方案。不过访问器方法是一个很好的东西,以至于只要是有可能,KVC也尽量在访问器方法的帮助下工作。为了设置或者返回对象属性,KVC按顺序使用如下技术:

    1)首先是@property生成的Set方法.

    2)检查是否存在名为-set<key>:的方法,并使用它做设置值。对于-get<key>和-set<key>:方法,将大写Key字符串的第一个字母,并与Cocoa的方法命名保持一致;(这里指的是自定义的Set方法)

    3)如果上述方法不可用,则检查名为-_<key>、-_is<key>(只针对布尔值有效)、-<key>和-is<key>:方法;

    4)如果仍未找到,则调用valueForUndefinedKey:和setValue:forUndefinedKey:方法。这些方法的默认实现都是抛出异常,我们可以根据需要重写它们。

    5)如果没有重写setValue:forUndefinedKey:方法,程序崩溃.

    kvo:

    kvo键值观察。

    kvo 实在kvc基础上实现观察的。

  • 相关阅读:
    C#程序调用cmd.exe执行命令
    JS正则表达式之特殊符号
    Java设计模式之策略模式
    Java基础之多态
    Filter过滤器笔记1
    Servlet笔记1
    jsp笔记3(内置对象)
    jsp笔记2(编译指令与动作指令)
    jsp笔记1(基本原理与语法)
    xml文件生成与下载
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5288844.html
Copyright © 2011-2022 走看看