gpt4 book ai didi

iOS:将所有类打包或加载应用程序

转载 作者:可可西里 更新时间:2023-11-01 05:36:56 25 4
gpt4 key购买 nike

我正在尝试获取应用程序在运行时加载的类列表。我不关心所有类,只关心那些加载的类。我知道如何获取所有类的列表,但遍历它们检查它们是否在加载的包中会导致随机崩溃,这似乎是一种矫枉过正的方法。

我看到了对 NSLoadedClasses 的引用,但我真的找不到任何相关内容,而且我不确定它是否适用于 iOS(相对于 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

}

关于iOS:将所有类打包或加载应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15149505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com