通过运行时来获取该注册类的所有子类
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];
}
#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];
}
相关文章推荐
- 黑马程序员——OC—类和对象的使用
- ecmall安装报错
- java的一些总结(不定期更新)
- Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-2.xml, reason:
- java 泛型
- 使用Spring Cache + Redis + Jackson Serializer缓存数据库查询结果中序列化问题的解决
- HDU 2896 病毒侵袭 (AC自动机)
- Android打开/关闭数据流量
- Gemfire集群配置服务的概述
- [异能程序员]第一章 酒后事发,上头条
- Makefile中wildcard的介绍
- 【转】Comet:基于 HTTP 长连接的“服务器推”技术
- 路由错误,请检查控制器目录下是否存在该控制器/动作
- maven教程二之仓库
- ibatis 动态sql prepend
- 学习笔记
- Java连接Sqlserver 2008总结
- 云主机的时代,虚拟主机该如何生存?
- Java PMD 安装地址
- Java 程序优化:字符串操作、基本运算方法等优化策略