获取Objective-c中运行时UIView的所有子类



是否有可能在Objective-c运行时获得UIView类的所有子类的数组?

这是打印所有UIView子类名称的代码:(如何在运行时获得所有可用类的列表可以在这里找到)。还请注意,这段代码将只打印直接的UIView子类,如果您想进一步深入层次结构,您可能需要递归地调用列出的代码,并将所需的超类作为参数。

Class * classes = NULL;
int numClasses = objc_getClassList(NULL, 0);
if (numClasses > 0 )
{
    classes = malloc(sizeof(Class) * numClasses);
    numClasses = objc_getClassList(classes, numClasses);
    for (int i = 0; i < numClasses; ++i){
        if (class_getSuperclass(classes[i]) == [UIView class]){
            NSLog(@"%@", NSStringFromClass(classes[i]));
        }
    }
    free(classes);
}

相关内容

  • 没有找到相关文章

最新更新