• 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: Document file read, but -readFromData:(etc) has error.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Document file read, but -readFromData:(etc) has error.


  • Subject: Re: Document file read, but -readFromData:(etc) has error.
  • From: Ken Thomases <email@hidden>
  • Date: Thu, 13 Aug 2009 20:50:06 -0500

On Aug 13, 2009, at 4:07 PM, John Velman wrote:

- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
{
NSLog(@"readFromData has been called, typeName is: %@\n", typeName);


   if ( outError != NULL ) {
       NSLog(@"outError is not null");

NSLog(@"Going to call NSError\n");
*outError = [NSError errorWithDomain:NSOSStatusErrorDomain
code:unimpErr userInfo:NULL];
NSLog(@"Read error -- outError is: %@\n\n", *outError);
[self setInputData:[[NSString alloc]
initWithData:data encoding:NSUTF8StringEncoding]];
[self convertData];
return NO;
}

You appear to have misunderstand the nature of the outError parameter. As the "out" prefix suggests, this is an output parameter. The caller supplies the address of a place where you _could_ store an NSError object pointer _if_ your method encounters an error in reading from the data.


If outError == NULL, that means the caller is not interested in getting the details of any error that might occur. If outError != NULL, that does _not_ mean that an error has occurred or should be provoked. It only means the caller wishes to receive the pointer to an NSError object _if_ an error occurs. So, your 'if ( outError != NULL )' conditional makes no sense as it stands.

Your code should attempt to perform the conversion of the data and, only if that conversion fails, it should check if the caller wanted a detailed error object and supply one. So, you should only check if outError is or is not NULL after _you_ have determine that _your conversion code_ encountered an error. You are not being signaled that there's been an error by your caller. Your caller doesn't know if there's been an error. It's waiting to find out.

Likewise, you should return TRUE or YES or the like if your conversion succeeds. You should only return NO or FALSE if your conversion fails.

Regards,
Ken

_______________________________________________

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: Document file read, but -readFromData:(etc) has error.
      • From: John Velman <email@hidden>
References: 
 >Document file read, but -readFromData:(etc) has error. (From: John Velman <email@hidden>)

  • Prev by Date: Re: File's owner, outlets and methods
  • Next by Date: Re: File's owner, outlets and methods
  • Previous by thread: Re: Document file read, but -readFromData:(etc) has error.
  • Next by thread: Re: Document file read, but -readFromData:(etc) has error.
  • Index(es):
    • Date
    • Thread