zoukankan      html  css  js  c++  java
  • KVC机制是如何通过key来寻找value

    setValue:forKey:搜索方式

    1、首先搜索setKey:方法。

    2、第一步没有找到的话,如果类方法accessInstanceVariablesDirectly返回为YES。那么按照_key,_isKey,key,isKey的顺序搜索成员名。(NSKeyValueCodingCatogery中实现的类方法,默认返回为YES)

    3、如果没有找到成员变量,调用setKey:forUnderfinedKey:

    valueForKey:搜索方式

    1、首先按照getKey,key,isKey的顺序查找getter方法,找到直接调用。如果是BOOL,int等内建值类型,会做NSNumber类型转化。

    2、上面的方法没有找到,查找countOfKey、objectInKeyAtindex、KeyAtindexes格式的方法。如果找到,那么就会返回一个可以响应NSArray所有方法的代理集合的NSArray消息方法。

    3、还没有找到的话,查找enumeratorOfKey、memberOfKey格式的方法。如果找到,就会返回一个可以响应NSSet所有方法的集合。

    4、还是没有找到的话,如果类方法accessInstanceVariablesDirectly返回为YES。那么按照_key,_isKey,key,isKey的顺序搜索成员名。

    5、再没找到的话,调用valueForUnderfinedKey。

  • 相关阅读:
    Tweet信息搜集工具tinfoleak
    Visual Studio 2017为Android APK包签名
    Arduino可穿戴教程之第一个程序——上传运行程序(四)
    基于NMAP日志文件的暴力破解工具BruteSpray
    CSS3边框圆角知识
    渐变的几个效果图
    错误类型
    prompt() 方法
    jQuery 遍历
    jquery的商品首页
  • 原文地址:https://www.cnblogs.com/leeinventor/p/8287020.html
Copyright © 2011-2022 走看看