在基于文档的应用程序中保存ManagedObjectContext?

时间:2012-11-28 09:48:14

标签: cocoa core-data

我在PersistentDocument中保存MOC时遇到问题。

我在我的MOC中插入一个新的MO并进行保存(例如)

    NSManagedObject *person=[[NSManagedObject alloc] initWithEntity:[NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext] insertIntoManagedObjectContext:self.managedObjectContext];

    if(person)
    { 
        [person setValue:@"test" forKey:@"name"];
        NSError *error;
        [self.managedObjectContext save:&error];
    } 

我必须在此时保存MO,因为我需要一个非临时的objectID来为我的后台线程对实体进行一些计算。

但是当我以这种方式保存MOC时,我得到了一个请求者

无法保存文档“Untitled.binary”。该文件已被其他应用程序更改。

单击“保存”以保留更改并将其他应用程序所做的更改另存为版本,或单击“还原”以保留其他应用程序的更改并将更改保存为版本。

下次Document试图保存其内容时。我无法保存文档,因为它可能仍然是无标题文档,并且[文档保存]的调用将打开保存请求者,这对用户来说不是很舒服。

有没有解决方案?

由于

克劳斯

1 个答案:

答案 0 :(得分:0)

尝试

,而不是试图保存MOC
[self.managedObjectContext processPendingChanges];

我在一个应用程序上遇到了同样的问题,我正在进行哪些更改不会引用。我尝试保存MOC并继续收到相同的消息。调用processPendingChanges对我有用。