您的位置:首页 > 其它

通过运行时来获取该注册类的所有子类

2015-07-08 10:33 239 查看
使用该方法需要包含头文件

#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];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: