Я использую MagicalRecord, и я не могу понять, как заставить его работать стабильно и предсказуемо.Как правильно сохранить обновления с помощью MagicalRecord?
Когда мне нужно обновить некоторые объекты, я извлечь их из БД, изменить их в соответствии с логикой, после того, как я отправить их в мой метод «экономии»:
- (void) saveEntities:(NSArray *)entities {
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
for (Entity_class *entityElement in entities) {
NSPredicate *entitySearchPredicate = [...] // Composing predicate
Entity_class *foundEntity = [Entity_class MR_findFirstWithPredicate:entitySearchPredicate];
foundEntity = entityElement;
}
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
} completion:^(BOOL contextDidSave, NSError *error) {
// contextDidSave always equals NO. Sometimes changes get saved, but sometimes they don't
}];
}
Я попытался сохранить локальный контекст [localContext MR_saveToPersistentStoreAndWait]
вместо стандартного, но он никогда не работал.
Я борюсь с этими контекстами на вторую ночь, и только у меня закончились варианты поисковых запросов для Google. Как справиться с контекстом и сохранить их правильно?
Я просто пытался сохранить контекст объекта ' [entityElement.managedObjectContext MR_saveToPersistentStoreAndWait] 'и он работает. Я все еще не понимаю, почему 'saveWithBlock:' сохраняет это непредсказуемо. И почему в мире этот метод существует, если все, что мне нужно сделать, это сохранить контекст объекта? –