码迷,mamicode.com
首页 > 其他好文 > 详细

KVC解析

时间:2020-02-27 11:42:24      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:tis   ble   key   app   set   dict   def   pre   context   

  • valueForKey (总体规划,先找相关方法,再找相关变量)

    • 1、先是找相关方法,如果方法找不到
    • 2、那么去判断

      1
      2
      3
      + (BOOL)accessInstanceVariablesDirectly{
      return YES;
      }

    此方法是否返回YES,默认为YES

  • 3、如果是NO,直接执行KVC的valueForUndefinedKey:(系统弹出异常,未定义key),

    • 如果是YES,继续再去找相关变量
    • 相关方法:getKey, key 优先级getKey大
      于变量方法:可以返回数组

      1
      2
      3
      4
      5
      6
      7
      8
      9
      - (NSUInteger)countOf<Key>{
      return 2;
      }
      - 大专栏  KVC解析(id)objectIn<Key>AtIndex:(NSUInteger)index{
      if (index == 0) {
      return @"hanck";
      }
      return @"badian";
      }
* 相关变量 **_key** **_isKey** **key** **isKey** 优先级依次降低
  • setValue 方法

    • 先找set方法,找不到再给属性赋值 setKey setIsKey

    • setValue:(id)value forKeyPath:(NSString *)keyPath来设置私有变量

    • 打断点在viewdidappear里获取subViews
    • 隐藏方法:max min sum count avage

KVO使用

1
2
3
4
5
- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context;
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
NSLog(@"%@",change);
}

可以手动触发通知,默认是自动触发通知

KVC解析

标签:tis   ble   key   app   set   dict   def   pre   context   

原文地址:https://www.cnblogs.com/lijianming180/p/12371137.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!