Приложение на основе NSDocument с использованием CoreData. Очень просто — две сущности с отношением «один ко многим». Это приложение отлично работает с сохранением, загрузкой и т. д.
Затем я включил автосохранение следующим образом:
[[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* заботится о том, существует файл или нет? Почему это сработает в первый раз, а затем не сработает в последующие разы?
NB: Я проверил, и Apple пытается использовать идентичное имя файла при втором вызове автосохранения - если это сработало в первый раз, почему это не удалось через 0,5 секунды ???