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>