美文网首页
使用MagicalRecord中遇到的一些问题

使用MagicalRecord中遇到的一些问题

作者: ExcaliburC | 来源:发表于2019-11-13 18:07 被阅读0次

    在SDK中使用CoreData时,选择了使用MagicalRecord,按流程操作后,在使用MR_findAll等方法时,程序崩溃,错误信息如下

    Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'executeFetchRequest:error: A fetch request must have an entity.'

    经检查,发现是使用SDK的TARGETS->Build Phases->Copy Bundle Resources中没有加入model.xcdatamodeld,加入后,程序不再崩溃。
    由于SDK要提供给第三方,需要将model.xcdatamodeld加入bundle中后,供MagicalRecord使用。
    采用如下方法
    1.找到bundle

    NSString *myBundlePath = [[NSBundle mainBundle] pathForResource:@"myBundlePath" ofType:@"bundle"];
    NSBundle *myBundle = [NSBundle bundleWithPath:myBundlePath];
    

    2.合并项目和SDK中的所有模型创建一个NSManagedObject模型。这简化了保存,我们可以用一个单独的persistent store来保存一个单独的managed object model。

    NSArray * bundles = [NSArray arrayWithObjects:[NSBundle mainBundle],myBundle,nil];
    NSManagedObjectModel * models = [NSManagedObjectModel mergedModelFromBundles:bundles];
    [MagicalRecord setShouldAutoCreateManagedObjectModel:NO];
    [NSManagedObjectModel MR_setDefaultManagedObjectModel:models];
    

    3.初始化MagicalRecord

    [MagicalRecord setupCoreDataStackWithStoreNamed:@"MySDKData.sqlite"];
    

    经测试,demo正常运行。

    相关文章

      网友评论

          本文标题:使用MagicalRecord中遇到的一些问题

          本文链接:https://www.haomeiwen.com/subject/ovdkictx.html