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

最佳答案

这是打印所有 UIView 子类名称的代码:(如何获取运行时可用的所有类的列表可以找到 here )。另请注意,此代码将仅打印直接的 UIView 子类,如果您想进一步深入层次结构,您可能需要使用所需的父类(super class)作为参数递归调用列出的代码。

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);
}

关于objective-c - 在Objective-c中在运行时获取UIView的所有子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8183136/

10-11 10:27