我正在使用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:'保存如此难以预测。如果我只需要保存实体的上下文,为什么在这个世界上存在这种方法呢? –