Reputation: 14050
Is is possible in Objective-c runtime to get an array of all subclasses of UIView class?
Upvotes: 3
Views: 1433
Reputation: 170829
Here's the code that prints names of all UIView subclasses: (How to get list of all classes available at runtime can be found here). Note also that this code will print only direct UIView
subclasses, if you want to go further down the hierarchy you'll probably need to call listed code recursively with desired superclass as a parameter.
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);
}
Upvotes: 8