我一直在努力
objc_property_t *properties = class_copyPropertyList([NSString class], &outCount);
这有两个我不知道如何解决的局限性:
如何动态列出类(或实例)中的所有IBOutlet属性?
最佳答案
IBOutlet
是 #define
d as a blank string;它在编译或运行时都没有任何作用。其唯一目的是允许Interface Builder查看头文件并查看应将哪些ivars用作连接。确定哪个ivar被声明为IBOutlet
的唯一方法是对正在使用的任何类的头文件进行一些文本处理。
对于属性,我不确定除了上 super class 列表并获取其所有属性之外,没有其他方法。您可以循环调用class_getSuperclass
以获取类的整个祖先; *当您以根类(Nil
)作为参数调用该函数时,该函数将返回NSObject
。
*参见例如我的this SO answer。
关于objective-c - 动态列出类的IBOutlets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590805/