• 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 custom file Package or URL override?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSDocument custom file Package or URL override?


  • Subject: Re: NSDocument custom file Package or URL override?
  • From: Trygve Inda <email@hidden>
  • Date: Thu, 16 May 2013 23:11:41 -0700
  • Thread-topic: NSDocument custom file Package or URL override?

> On 5/15/13 5:14 PM, Trygve Inda wrote:
>> My document format needs to look like:
>>
>> File (actually a directory marked as a package)
>> -- MyData.plist
>> -> Images (directory)
>> ----> Image1.png
>> ----> Image2.png
>> -> Data (directory)
>> ----> Data1.dat
>> ----> Data2.dat
>> -> Icons (directory)
>> ----> Icon1.png
>> ----> Icon1.png
>>
>>
>> In my NSDocument subclass, Overriding:
>>
>> - (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper
>> ofType:(NSString *)typeName error:(NSError **)outError
>>
>> Doesn't seem to be the right thing to do since it seems to want to put all
>> the files in a single flat directory within the package
>
> It's the right place. You'll get a filewrapper representing the
> document-package
> directory (the root). From there, you can query the root wrapper for
> sub-wrappers using -fileWrappers (use -isDirectory and -isRegularFile to find
> out if a wrapper contains other wrappers).
>
> For writing the document, you'll overwrite -fileWrapperOfType:error: and
> return
> a root wrapper that contains your entire package structure. You can construct
> the interior of your package format to your liking, you can also add
> directories
> by adding a file wrapper that represents a directory - created via
> -initDirectoryWithFileWrappers:
>
> The NSDocument guide contains a section about using wrappers and demos the
> basics:
>
> http://developer.apple.com/library/mac/#documentation/DataManagement/Conceptua
> l/DocBasedAppProgrammingGuideForOSX/AdvancedTopics/AdvancedTopics.html
>
> Regards
> Markus

One issue is that when opening my document (the package may contain several
thousand files) I only really need to load one file (the plist) and then
there rest of the files are images that are only read as needed... So I will
need to have my doc keep a reference to the package location to read these
images outside of the normal save/read methods.

In looking at the docs:

- (BOOL)readFromURL:(NSURL *)absoluteURL ofType:(NSString *)typeName
error:(NSError **)outError

 it says " Sets the contents of this document by reading from a file or file
package, of a specified type, located by a URL."

So this seems to work for document packages too??



_______________________________________________

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 custom file Package or URL override?
      • From: Markus Spoettl <email@hidden>
References: 
 >Re: NSDocument custom file Package or URL override? (From: Markus Spoettl <email@hidden>)

  • Prev by Date: Re: NSMutableDictionary or Custom Object when adding properties?
  • Next by Date: Re: NSMutableDictionary or Custom Object when adding properties?
  • Previous by thread: Re: NSDocument custom file Package or URL override?
  • Next by thread: Re: NSDocument custom file Package or URL override?
  • Index(es):
    • Date
    • Thread