Неявное преобразование косвенного указателя на указатель objective-c с ARC
Я работаю над проектом, использующим ARC, и у меня возникают проблемы с существующим фрагментом кода, который у меня уже был.
выглядит код:
- (id)initWithError:(NSError **)error
{
if ((self = [super init]))
{
errorPointer = error; //Getting error here
}
return self;
}
Im получает сообщение об ошибке:
неявное преобразование косвенного указателя на указатель objective-c на "NSError" не разрешено с помощью ARC.
Что мне делать, чтобы исправить эту проблему? Я пробовал делать мосты, но не работал.
Любая помощь приветствуется.
О, и только для уточнения, в .h файле, вот как я объявил переменную errorPointer:
NSError * errorPointer;
Спасибо!
Ответы
Ответ 1
Это должно быть
errorPointer = *error; // no error here
Две переменные отличаются уровнем косвенности (просто говоря, количество звезд в их объявлении не совпадает). Вам нужно добавить *
перед error
для смещения дополнительного *
errorPointer
.
Ответ 2
errorPointer и ошибка имеют несогласованные типы.
На основе кода, который у вас есть, кажется, что ваш аргумент error
должен быть просто объявлен как NSError *
.