On Oct 24, 2010, at 5:54 PM, Tom Jones wrote:

> I'm trying to understand why I'm getting thrown in to the debugger when using 
> NSError. I have three methods and I'm overloading them and trying to pass the 
> NSError along the way. What am I doing wrong?

> -(NSString *)getDataForType:(NSString *)aType error:(NSError **)err
> {
>    NSError *localErr = nil;
>    NSString *result = [self getDataForType:aType separator:@"\t" 
> excludeFields:nil error:&localErr];  
>    *err = *localErr;

This is incorrect.  The left and right sides are of two different types.  The 
compiler should have at least warned, if not given an error.

"*localErr" is an NSError.  It's not an NSError* (pointer to NSError), it's 
actually the type of the object (or struct).  There's almost never a case to 
dereference an object pointer like this.

"*err" is an NSError*, a pointer to an NSError.

What you wanted is:

        *err = localErr;

Actually, if you're not doing more with localErr, you can just eliminate it and 
just do:

   NSString *result = [self getDataForType:aType separator:@"\t" 
excludeFields:nil error:err];

The same mistake affects the next method, too.

>    return result;
> }

Regards,
Ken

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to