Подтвердить что ты не робот

Неявное преобразование косвенного указателя на указатель 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;

Спасибо!

4b9b3361

Ответ 1

Это должно быть

errorPointer = *error; // no error here

Две переменные отличаются уровнем косвенности (просто говоря, количество звезд в их объявлении не совпадает). Вам нужно добавить * перед error для смещения дополнительного * errorPointer.

Ответ 2

errorPointer и ошибка имеют несогласованные типы.

На основе кода, который у вас есть, кажется, что ваш аргумент error должен быть просто объявлен как NSError *.