• 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: Markus Spoettl <email@hidden>
  • Date: Sun, 10 Jun 2012 19:45:29 +0200

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 (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

  • Follow-Ups:
    • Re: NSDocument -canAsynchronouslyWriteToURL::: never called
      • From: Mike Abdullah <email@hidden>
    • Re: NSDocument -canAsynchronouslyWriteToURL::: never called
      • From: Alex Zavatone <email@hidden>
    • Re: NSDocument -canAsynchronouslyWriteToURL::: never called
      • From: Markus Spoettl <email@hidden>
References: 
 >NSDocument -canAsynchronouslyWriteToURL::: never called (From: Markus Spoettl <email@hidden>)

  • Prev by Date: NSDocument -canAsynchronouslyWriteToURL::: never called
  • Next by Date: Re: NSDocument -canAsynchronouslyWriteToURL::: never called
  • Previous by thread: NSDocument -canAsynchronouslyWriteToURL::: never called
  • Next by thread: Re: NSDocument -canAsynchronouslyWriteToURL::: never called
  • Index(es):
    • Date
    • Thread