我正在尝试在运行时获取应用程序中加载的类列表.我不关心所有类,只关心那些加载的类.我知道如何获取所有类的列表,但迭代它们检查它们是否在加载的包中会导致随机崩溃,并且看起来像是一种过度的方法.
我见过对NSLoadedClasses的引用,但我真的找不到任何关于它的东西,我不确定它是否适用于iOS(vs Mac).得到这个的正确方法是什么?同样,我在运行时需要它.
看起来我想通了.如果您需要这样做,请按以下步骤操作:
#import <objc/runtime.h>
#import <dlfcn.h>
#import <mach-o/ldsyms.h>
unsigned int count;
const char **classes;
Dl_info info;
dladdr(&_mh_execute_header, &info);
classes = objc_copyClassNamesForImage(info.dli_fname, &count);
for (int i = 0; i < count; i++) {
NSLog(@"Class name: %s", classes[i]);
Class class = NSClassFromString ([NSString stringWithCString:classes[i] encoding:NSUTF8StringEncoding]);
// Do something with class
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1243 次 |
| 最近记录: |