CoreModel icon indicating copy to clipboard operation
CoreModel copied to clipboard

删除app后重新安装,出现bug

Open xuzixian opened this issue 10 years ago • 1 comments

删除app后重新安装,会一直提示以下问题,请问怎么解决,谢谢! 注意:你操作的模型SYPersonModel在数据库中没有对应的数据表,框架正在全自动创表,并稍后自动重新执行您的操作,请放心!

xuzixian avatar Jan 08 '16 10:01 xuzixian

问题已解决,出现这个问题的原因是,我临时更改数据库路径,然后,在调用时没有对CoreModel的所有子类建表,解决的办法就是对CoreModel重新建表 #include <objc/runtime.h>

  • (NSArray *)findAllOf:(Class)defaultClass{

    int count = objc_getClassList(NULL, 0); if (count <= 0){

    @throw@"Couldn't retrieve Obj-C class-list";
    return [NSArray arrayWithObject:defaultClass];
    

    }

    NSMutableArray *output = [NSMutableArray arrayWithObject:defaultClass];

    Class *classes = (Class *) malloc(sizeof(Class) * count);

    objc_getClassList(classes, count);

    for (int i = 0; i < count; ++i) { if (defaultClass == class_getSuperclass(classes[i])){//子类

        [output addObjectsFromArray:[CoreModel findAllOf:classes[i]]];
    }
    

    }

    free(classes);

    return [NSArray arrayWithArray:output]; }

下面是重新建表 NSArray *array = [CoreModel findAllOf:[CoreModel class]]; for (id classStr in array) { [classStr initialize]; }

xuzixian avatar Jan 09 '16 12:01 xuzixian