小说网站 搜小说 无限网 烟雨红尘 小说爱好者 免费小说 免费小说网站

iOS下如何获取一个类的所有子类

因为项目中,不同用户切换时,用的是不同数据库,路径不同,而JKDBModel,数据库创建和字段检测,在app一次生命周期里,只会执行一次,所以得考虑账号切换时,创建数据库,需要获取所有JKDBModel的子类,期望Xcode文档中找到类似class_getSubclass这样的API无果,后来在stackoverflow上找到一个类似的解决方案:

    int numClasses;
    Class *classes = NULL;
    numClasses = objc_getClassList(NULL,0);
    
    if (numClasses >0 )
    {
        classes = (__unsafe_unretained Class *)malloc(sizeof(Class) * numClasses);
        numClasses = objc_getClassList(classes, numClasses);
        for (int i = 0; i < numClasses; i++) {
            if (class_getSuperclass(classes[i]) == [JKDBModel class]){
                NSLog(@"%@", NSStringFromClass(classes[i]));
            }
        }
        free(classes);
    }
原文地址:http://stackoverflow.com/questions/8183136/get-all-subclasses-of-uiview-in-runtime-in-objective-c

posted on 2015-07-23 10:53  王小航  阅读(527)  评论(0编辑  收藏  举报

导航