是否可以通过编程方式确定类具有哪些属性?

时间:2012-02-02 00:09:26

标签: objective-c runtime language-design introspection

是否可以通过编程方式确定类具有哪些属性?我想看看类(或子类)定义了什么属性。我被告知这与称为运行时内省的事情有关。我发现了this article,但它似乎只是冰山一角。

那么,是否可以通过编程方式确定类具有哪些属性?怎么样?

修改:

我正在开发iOS,而不是Mac OS X.我需要导入哪些标题?

1 个答案:

答案 0 :(得分:4)

Objective-C运行时编程指南包括a section about listing properties。实际获取列表的相关代码段是:

id LenderClass = objc_getClass("Lender");
unsigned int outCount;
objc_property_t *properties = class_copyPropertyList(LenderClass, &outCount);

然后使用运行时属性函数获取有关列表中每个属性的所需信息。