/** 设备屏幕宽度 */
#define KScreenWidth [[UIScreen mainScreen] bounds].size.width
/** 设备屏幕高度 */
#define KScreenHeight [[UIScreen mainScreen] bounds].size.height
/** iPhoneX判断 */
#define IsIphoneX (CGSizeEqualToSize(CGSizeMake(375.f, 812.f), [UIScreen mainScreen].bounds.size) || CGSizeEqualToSize(CGSizeMake(812.f, 375.f), [UIScreen mainScreen].bounds.size))
/** 状态栏高度 */
#define KStatusBar_Height ((IsIphoneX) ? 44 : 20)
/** 导航栏高度 */
#define KNavBar_Height ((IsIphoneX) ? 88 : 64)
/** 标签栏高度 */
#define KTabBar_Height ((IsIphoneX) ? 83 : 49)
/** 底部横条高度 */
#define HomeIndicator_Height ((IsIphoneX) ? 34 : 0)
KVC 获取 valueForKey:顺序
- 方法
getKey,key,isKey,_key ,accessInstanceVariablesDirectly(Yes -> 可以查找变量)
- 成员变量
_key,_isKey,key,isKey
- 异常
valueForUndefinedKey: NSUnknownKeyException
KVC 获取 setValue: forKey:顺序
内部实现kvo
willChange
修改
didChange
- 方法
setKey,_setKey,accessInstanceVariablesDirectly(Yes -> 可以查找变量)
- 成员变量
_key,_isKey,key,isKey
- 异常
setValue: forUndefinedKey: NSUnknownKeyException