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

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

  • 相关阅读:
    vue.js初识(一)
    node.js安装
    array_unshift
    查看php 某个服务的进程数
    获取src 内容
    微信支付 composer 方法 --- 实测有效
    tp5.1 model 方法下的like语句查询
    tp5.1 where 时间查询
    nginx conf 文件
    怎么用Ubuntu系统制作Ubuntu系统盘
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12371137.html
Copyright © 2020-2023  润新知