是否有一种优雅的方式来获取项目中使用的类的列表?项目中使用的类
我知道objc_getClassList(...)
它获取Objective-C中的所有类,我试图避免使用class_conformsToProtocol
来过滤类。
谢谢。
是否有一种优雅的方式来获取项目中使用的类的列表?项目中使用的类
我知道objc_getClassList(...)
它获取Objective-C中的所有类,我试图避免使用class_conformsToProtocol
来过滤类。
谢谢。
在Xcode中,按Cmd的 + 打开符号导航并按下左下角的图标C
通过类进行过滤。
您可以通过按C
图标旁边的文档图标进行更多筛选。结果将只包含您的项目中定义的类。下面是你必须点击标记为红色的按钮图片:
该代码将搜索你的运行所有以指定,并返回其名称(类型而不是编译类前缀开头类,当心):
NSArray *AllClassNamesInRuntimeWithPrefix(NSString *myClassPrefix) {
NSMutableArray *retObj = [NSMutableArray array];
int nClasses = objc_getClassList(NULL, 0);
if (nClasses > 0) {
Class allClasses[] = malloc(nClasses * sizeof(Class));
nClasses = objc_getClassList(allClasses, nClasses);
int i;
for (i = 0; i < nClasses; i++) {
NSString *thisClassName = NSStringFromClass(allClasses[i]);
if ([thisClassName hasPrefix:myClassPrefix]) {
[retObj appendObject:thisClassName];
}
}
free(allClasses);
}
return [NSArray retObj];
}
在运行时在搜索项目中的每一个类是有点苛求的,因为运行时没有一个格局“工程”,类可以在可执行文件存在或者在框架中,并且可以随时加载。
那么,你可以随时查看构建中的.m文件列表。 – 2013-04-20 01:51:35
通过“get”,你想查看项目中的类列表,还是想在运行时使用'NSArray',它包含项目中的所有类? – iluvcapra 2013-04-20 02:59:13
我知道显示项目中的类的类视图。我怎样才能使用代码并且不用在我的类前加上任何东西?所以像objc_getClassList,但只拿起我的项目中的类。 – Komposr 2013-04-20 16:28:45