2015-04-03 48 views
0

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

在这里,我将其用于存储代码:

-(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功能。

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

问候

回答

0

您可以使用神奇的记录保存块知道你的数据是两个表

[[yourObject managedObjectContext] MR_saveToPersistentStoreWithCompletion:^(BOOL contextDidSave, NSError *error) { 

     if (!error) { 
    NSLog(@"Object %@",object); 
     } 
}]; 

在这段代码中成功保存“yourobject”是要保存

+0

对象感谢穆罕默德为你的答案,我的对象被保存,我无法看到它使用SQlite浏览器,问题是,如果我重新启动应用程序,我的对象(功能)将从数据库中删除。 – Ali 2015-04-03 10:47:38

+0

我的建议是安装一个sqlite客户端,然后检查功能是否插入持久存储 – 2015-04-03 14:38:47