Rafael Moreira
Rafael Moreira

Reputation: 1769

implicit conversion of an indirect pointer to an objective-c pointer with ARC

I'm Working on a project that uses ARC and I am having trouble with an existing piece of code that I already had.

heres the code:

- (id)initWithError:(NSError **)error
{
    if ((self = [super init]))
    {
        errorPointer =  error; //Getting error here
    }

    return self;
}

Im getting an error that says:

implicit conversion of an indirect pointer to an objective-c pointer to 'NSError' is disallowed with ARC.

What should I do to fix this problem? I've tried doing a bridged cast, but didn't work. Any help is appreciated.

Oh and just for clarification, in the .h file this is how I declared the variable errorPointer:

NSError *errorPointer;

Thanks!

Upvotes: 11

Views: 10764

Answers (2)

Sergey Kalinichenko
Sergey Kalinichenko

Reputation: 726639

It should be

errorPointer = *error; // no error here

The two variables differ by a level of indirection (simply speaking, the number of stars in their declaration is not the same). You need to add an * in front of the error to offset the extra * of the errorPointer.

Upvotes: 10

UIAdam
UIAdam

Reputation: 5313

errorPointer and error have mismatched types.

Based on the code you have there, it seems like your error argument should just be declared as NSError *.

Upvotes: 1

Related Questions