2020-04-05 KVC

2021-06-14  本文已影响0人  Coke26

课程引入:
成员变量、实例变量、属性,区别是什么?---分类不能添加实例变量

LGPerson : NSObject {
  @public
  NSString *myName;//成员变量
  //实例变量是一种特殊的成员变量
  UIButton *btn;//实例变量
  id hell;// id -> class
}
//属性 -- 默认的 setter+getter
//苹果编译器变化 GCC --> LLVM 
//没有匹配到实例变量的属性,自动创建一个带下划线
//@sythesie    namep = _name;//自动生成setter+getter
@property(nonatomic,copy )NSString *namep;

成员变量 -- 实例变量 -- 属性 -- KVC

KVC是什么?
1.是一种机制,通过NSKeyValueCoding 间接访问成员变量;
2.通过键值编码


赋值过程:setValue forKey

//存得时候 不是唯一
_<key>,_is<key>,<key>,is<key>
所以,不是直接给<key>赋值,先存到_<key>


取值过程:valueForKey

普通类型:
//多种get方法寻找
1.get<key>,<key>,is<key>,_<key>
//寻找集合类型:
2.countoflnde :array
//
3.PS:是否开启间接访问accessInstanceVariablesDirectly,默认YES
,就会访问其他一系列成员变量:
_<key>,_is<key>,<key>,is<key>

上一篇下一篇

猜你喜欢

热点阅读