使用该方法需要包含头文件
#import <objc/runtime.h>
+ (NSArray*)subclassesOfClass:(Class)parentClass
{
int numClasses = objc_getClassList(NULL, 0);
Class *classes = (Class*)malloc(sizeof(Class) * numClasses);
numClasses = objc_getClassList(classes, numClasses);
NSMutableArray *result = [NSMutableArray array];
for(NSInteger i=0; i<numClasses; i++){
Class cls = classes[i];
do{
cls = class_getSuperclass(cls);
}while(cls && cls != parentClass);
if(cls){
[result addObject:classes[i]];
}
}
free(classes);
return [result copy];
}
本文介绍了一种Objective-C编程技巧,通过自定义方法来获取指定父类的所有子类。此方法利用了Objective-C运行时特性,实现了遍历并收集所有继承自特定类的子类。
2510

被折叠的 条评论
为什么被折叠?



