有的时候在需求中需要获取工程中所有的类名。例如在获取工程中继承某个类的列表。

核心代码如下:

 

    unsigned int count = 0;
    const char **classes = nil;
    Dl_info info;
    dladdr(&_mh_execute_header, &info);
    NSLog(@"%s", info.dli_fname);
    /*
     info.dli_fame 是工程编译时工程的路径
     objc_copyClassNamesForImage 返回所有类的名称
     */
    classes = objc_copyClassNamesForImage(info.dli_fname, &count);
    for (int index = 0; index < count; ++index) {
        NSString *className = [NSString stringWithCString:classes[index] encoding:NSUTF8StringEncoding];
        NSLog(@"className = %@", className);
    }

若有疑问请加本人QQ:610774281 微信:stephenli225。 一起探讨一起进步。。。。 

posted on 2017-02-27 22:21  Stephen Li  阅读(1553)  评论(0编辑  收藏  举报