zoukankan      html  css  js  c++  java
  • iOS--KVC&KVO

    一、KVC

    通过关键字,访问属性及成员变量。

    1.kvc当调用setValue:属性值 forKey:@”name“的代码时,底层的执行机制(顺序)如下:

    ①.set方法:set<Key> (注意,通过属性自动合成的set方法也算)

    ②.(BOOL)accessInstanceVariablesDirectly方法有没有返回YES,默认该方法会返回YES,继续向下寻找。

    (如果你重写了该方法让其返回NO的话,那么在这一步KVC会直接执行⑤setValue:forUNdefinedKey:方法,不过一般开发者不会这么做。所以,如果想让自己的类禁用kvc,可以用此方法返回NO,不过记得属性会自动合成set方法)

    ②._<key>成员变量

    ③._is<Key>成员变量

    ④.<key>和is<Key>成员变量

    ⑤.执行该对象的setValue:forUNdefinedKey:方法,默认是抛出异常。

    2.当调用valueForKey:@"name"时,执行机制(顺序)如下:

    ①.get<Key>,<key>,is<Key> ,这些get方法

  • 相关阅读:
    自闭的D7
    D2
    Codeforces Round #531 (Div. 3)
    hello 2019 D
    牛客练习赛36B
    cf954H
    gym102007 E
    Gym 101972
    Gym 101810
    试题 历届试题 青蛙跳杯子(bfs)
  • 原文地址:https://www.cnblogs.com/howdoudo/p/6862920.html
Copyright © 2011-2022 走看看