Re: NSDocument -canAsynchronouslyWriteToURL::: never called
Re: NSDocument -canAsynchronouslyWriteToURL::: never called
- Subject: Re: NSDocument -canAsynchronouslyWriteToURL::: never called
- From: Mike Abdullah <email@hidden>
- Date: Sun, 10 Jun 2012 14:04:34 -0700
On 10 Jun 2012, at 10:45, Markus Spoettl wrote:
> 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.
Do you override any of the old -save… methods? If so, the document architecture figures they need to be called, so won’t attempt an async save.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden