Cocoa中的KVC如何检查实例变量是否可访问?

时间:2011-01-20 11:12:42

标签: cocoa cocoa-design-patterns

最近我正在阅读“可可设计模式”。在谈到KVC时,它说“KVC检查名为 - < key >或-get< Key >的访问者是否首先存在,如果没有,它会尝试名为< key >或_< >“的实例变量。 obj-c运行时可以检查实例变量是否存在?我认为它只能在编译时完成......

感谢任何答案^ _ ^

1 个答案:

答案 0 :(得分:1)

确实可以。相关文件是the Objective-C Runtime Reference;具体而言,class_getInstanceVariable。文档遗漏的部分是,当类的实例没有这样的变量时,该函数返回NULL

KVC可能会将对象的类和候选变量名称传递给该函数,并且运行时出现Ivar的第一个名称就是它所使用的名称。