1
我正在使用神奇記錄來處理核心數據。我有一個創建一個實體,看起來如下代碼:MR_save似乎刪除上下文中的對象
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上下文?
所有保存和創建正在主線程上運行。