Вот код, который печатает имена всех подклассов 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);
}