我的iOS项目中有获取类别列表的功能吗?

时间:2019-03-26 09:10:13

标签: ios

要获取iOS项目中的类列表,我可以使用运行时API objc_getClassList作为打击, 但无法通过这种方式获得类别。那么,是否有任何类型的objc_getCategoryList函数? 我看上去很像,没什么。

#import <objc/runtime.h>

-(void) showCustomClassName {
    unsigned int classNamesCount = 0;
    NSString *appImage = [NSBundle mainBundle].executablePath;
    const char **classNames = objc_copyClassNamesForImage([appImage UTF8String], &classNamesCount);

    if (classNames) {
        NSMutableArray *classNameStrings = [NSMutableArray array];

        for (unsigned int i = 0; i < classNamesCount; i++) {
            const char *className = classNames[i];
            NSString *classNameString = [NSString stringWithUTF8String:className];
            [classNameStrings addObject:classNameString];
        }

        NSArray *allClassNames = [classNameStrings sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
        NSLog(@"---%@", allClassNames);
        free(classNames);
    }
}

0 个答案:

没有答案