• KVC解析


    • 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);
    }

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

  • 相关阅读:
    hdu--2852--树状数组
    hdu--2848--未解决
    二进制与十进制之间蛮好的转换方式
    hdu--2846--字典树<怪我思维不够跳跃>
    hdu--2845--dp
    hdu--2844--多重背包
    hdu--1789--贪心||优先队列
    hdu--1978--记忆化深度搜索||递推
    hdu--2830--任意交换列的矩阵
    hdu--1506--矩阵求和<stack>
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12371137.html
Copyright © 2020-2023  润新知