Я использую волшебную запись для обработки основных данных. У меня есть код, который создает сущность, которая выглядит следующим образом:
if ( gameEntity == nil )
{
gameEntity = [GameEntity MR_createEntity];
}
gameEntity.opponent = opponent;
gameEntity.me = me;
etc...
Когда я затем запрашиваю игровые объекты следующим образом:
NSPredicate* gamePredicate = [NSPredicate predicateWithFormat:@"SELF IN %@ AND gameState != %@", me.myGames, GAME_ENTITY_STATE__OTHER];
NSFetchRequest* fetchRequest = [GameEntity MR_requestAllWithPredicate:gamePredicate];
NSArray * results = [[NSManagedObjectContext MR_defaultContext] executeFetchRequest:fetchRequest error:nil];
return results;
Результаты имеют размер 1 (что имеет смысл).
Однако, когда я сохраняю контекст следующим образом:
[[NSManagedObjectContext MR_defaultContext] MR_save];
И запустите тот же fetchRequest выше, внезапно GameEntity исчезнет, и в NSArray нет результатов.
Еще более странно, когда я закрываю приложение и запускаю его снова, оно находит GameEntity. Так что по факту спасли. Почему MR_save существенно нарушает мой контекст NSManagedObject?
Все сохранения и создания выполняются в основном потоке.