MagicalRecord不保存一对多的关系实体
问题描述:
当我第一次启动我的应用程序时,我创建了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功能。
请问您知道如何解决此问题吗?
问候
答
您可以使用神奇的记录保存块知道你的数据是两个表
[[yourObject managedObjectContext] MR_saveToPersistentStoreWithCompletion:^(BOOL contextDidSave, NSError *error) {
if (!error) {
NSLog(@"Object %@",object);
}
}];
在这段代码中成功保存“yourobject”是要保存
对象感谢穆罕默德为你的答案,我的对象被保存,我无法看到它使用SQlite浏览器,问题是,如果我重新启动应用程序,我的对象(功能)将从数据库中删除。 – Ali 2015-04-03 10:47:38
我的建议是安装一个sqlite客户端,然后检查功能是否插入持久存储 – 2015-04-03 14:38:47