• 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
NSDocument/NSFileWrapper troubles
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NSDocument/NSFileWrapper troubles


  • Subject: NSDocument/NSFileWrapper troubles
  • From: Christopher Erbach <email@hidden>
  • Date: Thu, 31 Jul 2003 02:58:07 -0500

I'm having troubles with some NSDocument code that I, a Cocoa newbie, wrote. I'm trying to preserve an NSFileWrapper passed by loadFileWrapperRepresentation:ofType: within the NSDocument. If I create a new file, I can save it, even multiple times, and all's well and good. However, when I load a file from disk and try to save it again, my application crashes.

If I comment out my "wrapper = newWrapper" line in loadFileWrapperRepresentation, the application runs and saves, albeit without loading any of the data. This looks eerily like a simple retain problem, but if it is, my newbie eye certainly can't find it.

I sliced the detailed pieces for loading and saving out of the routines. What's left is enough to cause the crashing behavior when saving files, which actually occurs after the loading/saving is complete during the event loop, not anywhere that's easily debuggable.

~ Chris Erbach



// From CocoaDream.h:

@interface CocoaDream : NSDocument
{
NSFileWrapper * wrapper;
IBOutlet NSTextView * entryBody;
IBOutlet NSFormCell * subjectBox;
IBOutlet NSFormCell * dateBox;
}

// From CocoaDream.m:

- (BOOL)loadFileWrapperRepresentation:(NSFileWrapper *)newWrapper ofType:(NSString *)type {
NSEnumerator * fileEnum;
id curFile;
NSMutableDictionary * metadata;
NSString ** error = nil;

[newWrapper retain];
[wrapper release]; // Useless, logically, conventionally, valuable
wrapper = newWrapper; // Commenting this line prevents the crashes

return true;
}

- (void)windowControllerDidLoadNib:(NSWindowController *) aController
{
[super windowControllerDidLoadNib:aController];

[wrapper release];

if (wrapper == nil) {
// Only used if we haven't loaded a wrapper, earlier, from loadFileWrapperRepresentation yet
wrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:[[NSDictionary alloc] init]];
}
}

- (NSFileWrapper *)fileWrapperRepresentationOfType:(NSString *)type {
NSMutableDictionary * metaData = [[NSMutableDictionary alloc] init];
NSData * htmlData = nil;
NSString ** error = nil;

return wrapper;
}
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re: NSDocument/NSFileWrapper troubles
      • From: Derek Chesterfield <email@hidden>
  • Prev by Date: Re: Converting ASCII Code to a Character
  • Next by Date: Re: NSDocument/NSFileWrapper troubles
  • Previous by thread: Re: Authorization Question
  • Next by thread: Re: NSDocument/NSFileWrapper troubles
  • Index(es):
    • Date
    • Thread