Reputation: 1769
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
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
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