使用 CoreData 的基于 NSDocument 的应用程序。非常简单 - 两个实体,具有一对多的关系。这个应用程序与保存、加载等完美配合。
然后我像这样打开自动保存:
[[NSDocumentController sharedDocumentController] setAutosavingDelay:0.1];
......它立刻就发生了可怕的错误。
第一次自动保存工作,100% 正确。即它将文件保存在用户的私有目录中,如果您退出应用程序并重新启动,则自动保存的文档会自动重新打开。凉爽的!
但是,一旦您对数据进行第二次更改,您就会在自动保存中崩溃,如下所示:
error = Error Domain=NSCocoaErrorDomain Code=134030 UserInfo=0x1001a1be0 "An error occurred while saving."
Underlying Error=(Error Domain=NSCocoaErrorDomain Code=4 UserInfo=0x10019a840 "The file doesn’t exist."
Underlying Error=(Error Domain=NSPOSIXErrorDomain Code=2 UserInfo=0x100150d00 "The operation couldn’t be completed. No such file or directory"))
...这对我来说毫无意义。为什么 auto*SAVE* 会关心文件是否存在?为什么它第一次工作,然后又失败了?
注意:我已经检查过了,Apple 尝试在第二次自动保存调用中使用相同的文件名 - 如果它第一次工作,为什么它在 0.5 秒后失败???