• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSDocument -canAsynchronouslyWriteToURL::: never called
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


References: 
 >NSDocument -canAsynchronouslyWriteToURL::: never called (From: Markus Spoettl <email@hidden>)
 >Re: NSDocument -canAsynchronouslyWriteToURL::: never called (From: Markus Spoettl <email@hidden>)

  • Prev by Date: Re: NSDocument -canAsynchronouslyWriteToURL::: never called
  • Next by Date: Re: Why does NSDocument not care about saving Viewer-role document types
  • Previous by thread: Re: NSDocument -canAsynchronouslyWriteToURL::: never called
  • Next by thread: Defining subclasses at run time
  • Index(es):
    • Date
    • Thread