我想所有的本地類(的NSString,NSNumber的,整數,浮點,NSSet中,NSDictionary的),我已經加載到我的iOS項目..獲取所有本地類的列表
也就是說,如果我創建一個名爲「TestClass」的自定義類我不希望它列出...
我已經得到了一個代碼,但它返回所有加載的類的名稱任何方式我可以修改代碼來限制列表只有Native類?
#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
}
int,float不是類。 –
@MartinR,但也會進入上面案例的列表! – Raon
如果我運行你的代碼,我只獲得* app中定義的類(AppDelegate,ViewController)。你是否想要在任何框架(Foundation,CoreFoundation,UIKit,WebKit,QuartzCore,...)中定義的所有類,或者「native class」是什麼意思? –