kvc原理

KVC底层实现原理

  • 第一步:寻找该属性有没有setsetter方法?有,就直接赋值
  • 第二步:寻找有没有该属性带下划线的成员属性?有,就直接赋值
  • 第三步:寻找有没有该属性的成员属性?有,就直接赋值
  • 1、首先搜索setKey:方法.(key指成员变量名, 首字母大写)
  • 2、上面的setter方法没找到, 如果类方法accessInstanceVariablesDirectly返回YES. 那么按 _key, _isKey,key, iskey的顺序搜索成员名.(NSKeyValueCodingCatogery中实现的类方法, 默认实现为返回YES)
  • 3、如果没有找到成员变量, 调用setValue:forUnderfinedKey:

猜你喜欢

转载自www.cnblogs.com/diyigechengxu/p/9213715.html
KVC