搜索这篇文章的标题后发现它很常见;的确,我从Xcode那里得到了这个错误。但我似乎无法找到任何修复。我现在在运行程序时看到它,它似乎发生在调用changeCountTokenForSaveOperation期间或之后。它似乎与撤销管理器有关,而不是与我使用核心数据这一事实有关,但我可能错了。
是否有人知道导致此问题的原因或解决方法?
答案 0 :(得分:1)
在NSPersistentDocument类的managedObjectContext
上执行代码手动保存时,NSPersistentDocument可能会发生此错误。这里的问题是你正在修改NSPersistentDocument后面的磁盘上的文件。只需将保存操作保留到NSPersistentDocument,就不会发生错误。
答案 1 :(得分:1)
问题是手动保存managedObjectContext。因此正确的解决方案是避免手动保存。如果无法避免,则可以重写NSDocument的fileModificationDate方法以返回文件的当前文件修改日期。这样,文档不会显示错误消息。
- (NSDate *)fileModificationDate {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDictionary *attrs = [fileManager attributesOfItemAtPath:self.fileURL.path error:NULL];
return attrs[NSFileModificationDate];
}
答案 2 :(得分:-3)
我认为这与您可以通过Apple单击方法名称导航到其他文件这一事实有关。如果您在一个文件中进行更改然后导航到另一个文件,则会将上一个窗口留在后面。您可以单击“后退”三角形再次到达它(即位于文件窗口左上角的上方)。但是,如果它在那个现在已经黯然失色的窗口中有未保存的更改,并且您在另一个选项卡或窗口中再次编辑同一个文件,XCode会询问您将哪一个与上述消息保持一致。
当它发生时,我将磁盘上的文件复制到一个新名称,然后选择“Save Anyway”并比较这两个文件。不幸的是,有时每个文件都有重要的变化,我必须手动合并它们。
我很沮丧,我可以哭。