0

在我的应用程序中,我使用了两个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];

谢谢你的帮助!

4

1 回答 1

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;
于 2014-04-24T06:26:07.073 回答