问题
Documentation simply states that setting setAutosavingDelay
to anything > 0 on the shared doc controller should do it, but after calling
[[NSDocumentController sharedDocumentController] setAutosavingDelay:2.0];
in my controller, autosave doesn't seem to work: I neither see anything in ~/Library/Autosave Information/
, nor is
[[[NSDocumentController sharedDocumentController] currentDocument] autosavedContentsFileURL]
initialized.
Note that in my app, normal loading and saving work fine (keyedarchivers, nscoding-based class for my docs, etc).
回答1:
Have you overridden -updateChangeCount: at all? I'm pretty certain that Apple's implementation is the code that starts up the autosave timer. Also, what if you experiment with a longer timer?
回答2:
Some people find that the directory ~/Library/Autosave Information is owned by root, and so files can not be written therein. See for example http://discussions.apple.com/thread.jspa?threadID=2252306
I don't know how the bug arises but I was bitten by it -- the directory was created 2010-06-17 12:19 and I assume that the permissions were wrong from that moment.
来源:https://stackoverflow.com/questions/408159/cocoa-nsdocument-getting-autosave-to-work