在我的应用程序中,我使用两个NSManagedObjectContexts
,一个用于存储永久数据,另一个用于处理临时数据(因此我可以使用NSManagedObject
子类)。
当我在临时NSManagedObjectContext
中创建临时实体后执行获取请求时,我获得所有永久存储的实体和临时实体。
这是我的代码:
//create temporarily stored entity
Entity *entity = [NSEntityDescription insertNewObjectForEntityForName:@"Entity" inManagedObjectContext:temporaryManagedObjectContext];
//...
//get permanently stored entities
NSMutableArray *mutableFetchResults = [[[permanentManagedObjectContext executeFetchRequest:request error&error] mutableCopy];
感谢您的帮助!
答案 0 :(得分:0)
谢谢大家,你的评论引导我犯了我的错误,非常愚蠢我不得不说:我从永久上下文中复制了用于创建临时上下文的代码,忘了替换所有的出现,对我感到羞耻!
if (temporaryManagedObjectContext != nil) return temporaryManagedObjectContext;
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
temporaryManagedObjectContext = [[NSManagedObjectContext alloc] init];
[temporaryManagedObjectContext setPersistentStoreCoordinator:coordinator];
}
//returned the wrong NSManagedObjectContext
return permanentManagedObjectContext;