DeprecatedOn 6/10/12 7:21 PM, Markus Spoettl wrote:
Keeping the list server busy while everyone else seem to have better things to
do...

Is there an magic trick to get the framework to actually call NSDocument's

- (BOOL)canAsynchronouslyWriteToURL:(NSURL *)url ofType:(NSString *)typeName
forSaveOperation:(NSSaveOperationType)saveOperation

I'd like to do as the documentation suggests and put the document writing into a
background tread (if you follow the little flood of NSDocument related messages
you know why). Documentation says:

--------
The default implementation of this method returns NO. You are strongly
encouraged to override it and make it return YES, after making sure your
overrides of document writing methods can be safely invoked on a non-main
thread, and making sure that unblockUserInteraction is invoked at some
appropriate time during writing.
--------

There's no precondition listed, but there seems to be one as my override is
never called. Why?

Well, it suddenly started working and the reason is that apparently you need to 
have

-saveToURL:ofType:forSaveOperation:completionHandler:

overwritten. If you don't you just don't get to use background writing. Overwriting this method does the trick. One would think that the existence of

-canAsynchronouslyWriteToURL:ofType:forSaveOperation:

should be indication enough that one really, truly wants to use it. I have a suspicion that it has to do with my overwriting of

-saveToURL:ofType:forSaveOperation:error:

which as of 10.7 is deprecated in favor of a 10.7 version:

-saveToURL:ofType:forSaveOperation:completionHandler:

Of course that's no good if you want to support 10.6 as well.

Regards
Markus
--
__________________________________________
Markus Spoettl
_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

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

Reply via email to