【问题标题】:MagicalRecord Not saving to-many relationship entityMagicalRecord 不保存对多关系实体
【发布时间】:2015-04-03 09:36:59
【问题描述】:

当我第一次启动我的应用程序时,我创建了 Show 对象,其中包含与 Feature 实体的多对多关系。仅在第一次启动我的应用程序后,它正确地存储了我的显示对象及其正确的功能。问题是,当我第二次启动我的应用程序时,它会从我的数据库中删除所有功能,尽管没有第二次访问数据库(我们每 5 天更新一次)。

这里是我用来存储的代码:

-(void)insertOrUpdateShow:(Show_fr*)show withObjects:(NSDictionary*)item forMoc:(NSManagedObjectContext*)context
{
    if (!show)
    {
        show = [Show_fr MR_createInContext:context];
    }
    show.title                  = [item objectForKey:@"title"] ;
    show.latitude               = [item objectForKey:@"latitude"] ;
    show.longitude              = [item objectForKey:@"longitude"] ;
    NSArray * features          = [item objectForKey:@"feature"] ;
    for (NSDictionary * featureDict in features) {
        [show addFeaturesObject:[self createFeatureFromDictionnary:featureDict forMoc:context]];
    }
    [context MR_saveToPersistentStoreAndWait];
}

-(Feature_fr*)createFeatureFromDictionnary:(NSDictionary*)featureDictionary forMoc:(NSManagedObjectContext*)context
{
    Feature_fr * feature = [Feature_fr MR_createInContext:context];
    feature.icon    = [featureDictionary objectForKey:@"icon"] ;
    feature.label   = [featureDictionary objectForKey:@"label"] ;
    feature.value   = [featureDictionary objectForKey:@"value"] ;
    return feature;
}

确切地说,在第一次启动时,我的数据库中有 6 个节目和 127 个功能对象,而从第二次开始,我有 6 个节目,但有 0 个功能。

请问您知道如何解决这个问题吗?

问候

【问题讨论】:

    标签: ios core-data magicalrecord magicalrecord-2.2


    【解决方案1】:

    您可以使用 Magical Record Save Block 来知道您的数据已成功保存在两个表中

    [[yourObject managedObjectContext] MR_saveToPersistentStoreWithCompletion:^(BOOL contextDidSave, NSError *error) {
    
            if (!error) {
        NSLog(@"Object %@",object);
            }
     }];
    

    在此代码中,“yourobject”是您要保存的对象

    【讨论】:

    • 感谢 Muhammad 的回答,我的对象已保存,我无法使用 SQlite 浏览器看到它,问题在于,如果我重新启动应用程序,我的对象(功能)将从数据库中删除.
    • 我的建议是安装一个 sqlite 客户端,然后检查功能是否正在插入到持久存储中
    【解决方案2】:

    就我而言,我忘了设置模型。

    MagicalRecord.setDefaultModelFrom(Model.self)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      相关资源
      最近更新 更多