Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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!

like image 749
Rafael Moreira Avatar asked Jan 14 '12 17:01

Rafael Moreira


1 Answers

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.

like image 56
Sergey Kalinichenko Avatar answered Nov 15 '22 17:11

Sergey Kalinichenko