0

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

我在我的 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,因为我的后台线程需要它的 NOT 临时 objectID 才能对实体进行一些计算。

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

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

单击“仍然保存”以保留您的更改并将其他应用程序所做的更改另存为一个版本,或单击“恢复”以保留来自其他应用程序的更改并将您的更改另存为一个版本。

下次文档尝试保存其内容时。我不能保存文档,因为它可能仍然是一个无标题的文档,并且调用 [document save] 会打开保存请求器,这对用户来说不是很舒服。

有什么解决办法吗?

谢谢

克劳斯

4

1 回答 1

0

与其试图拯救你的 MOC,不如试试

[self.managedObjectContext processPendingChanges];

我在我正在开发的应用程序上遇到了同样的问题,其中刚刚所做的更改将无法参考。我尝试保存 MOC 并不断收到相同的消息。调用 processPendingChanges 对我有用。

于 2013-02-07T21:36:37.683 回答