On Jul 22, 2011, at 9:16 AM, Daniel Vollmer wrote:

> Hello,
> 
> I'm trying to add autosavesInPlace support to my NSDocument-based 
> Application. It supports a read-only type that is internally converted (as 
> suggested in 
> https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Documents/Tasks/FAQ.html#//apple_ref/doc/uid/20000954-1081265-BAJFDEGD)
>  to my writable type.
> 
> The viewer- and editor-roles are set correctly in the application's plist, 
> +writableTypes also returns only what I can write. For reference, I can read 
> .txt and read/write .wowplot.
> 
> Now, this seems to interact badly with autosavesInPlace: YES. The following 
> happens:
> 1) I open a document of the read-only type (.txt)
> 2) I convert this as suggested above to my writable type, using setFileType 
> and setFileURL
> 3) I modify the document
> 4) I attempt to close the document
> 5) Now the autosave-Machinery jumps into action and I get the following error:
> [ERROR] genstore_storage.c:GSAddPathAsGeneration:980  copyfile 
> "/Volumes/Seerose/Users/maven/Desktop/110720 225338.wowplot" to 
> "/Volumes/Seerose/Users/maven/Library/Autosave 
> Information/2521980F-37BC-4E21-AF6A-001BE638AEFC.genstore.noindex/.genstore_staging/OUyU4Xi/staged"
>  failed with error 2 (No such file or directory)
> 
> The errors make sense, as the file under that name never existed.
> 
> Now I'm stuck in-between a rock in a hard place:
> If I change the type, autosavesInPlace tries to duplicate a non-existent file 
> (because I modified the fileURL); if I don't change the type, NSDocument will 
> ask me to write a file of a type I cannot support.
> 
> Any ideas?


There's a tidbit in the AppKit release notes regarding this (Look for "File 
Type Fixing in -[NSDocument 
saveToURL:ofType:forSaveOperation:completionHandler:]").

While it doesn't say it right out, it suggests that you should give 
responsibility for changing to file URL to NSDocument. All you need to do is 
change the file type and NSDocument will take care of the file URL and avoid 
this error. (Note: you won't get this behavior if you're overriding the old 
-saveToURL:ofType:forSaveOperation:error: method.)

The documentation you linked to has not been updated to reflect this. Please 
file a radar against the documentation to get this updated.

-KP_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to