MagicalRecord Не сохраняет сущность отношения многие-многие
Когда я запускаю свое приложение в первый раз, я создаю Show
Объект, который содержит отношение ко многим Feature
юридическое лицо. После запуска моего приложения только в первый раз оно правильно хранит мой Show Object с правильными функциями. Проблема в том, что, когда я запускаю свое приложение во второй раз, оно удаляет все функции из моей базы данных, несмотря на то, что второй раз не обращается к БД (Мы показываем обновление только один раз каждые 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 функций.
Не могли бы вы знать, как решить эту проблему?
С уважением
2 ответа
В моем случае я забыл установить модель.
MagicalRecord.setDefaultModelFrom(Model.self)
Вы можете использовать блок сохранения магической записи, чтобы знать, что ваши данные успешно сохранены в обеих таблицах
[[yourObject managedObjectContext] MR_saveToPersistentStoreWithCompletion:^(BOOL contextDidSave, NSError *error) {
if (!error) {
NSLog(@"Object %@",object);
}
}];
В этом коде "yourobject" - это объект, который вы хотите сохранить