неявное преобразование косвенного указателя на указатель target-c с помощью ARC - PullRequest
11 голосов
/ 14 января 2012

Я работаю над проектом, использующим ARC, и у меня возникают проблемы с существующим фрагментом кода, который у меня уже был.

вот код:

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

    return self;
}

Я получаю сообщение об ошибке:

неявное преобразование косвенного указателя на указатель target-c на 'NSError' запрещено с помощью ARC.

Что я должен сделать, чтобы решить эту проблему? Я пытался сделать актерский состав, но не сработало. Любая помощь приветствуется.

Да, и просто для пояснения, в файле .h я объявил переменную errorPointer:

NSError * errorPointer;

Спасибо!

Ответы [ 2 ]

10 голосов
/ 14 января 2012

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

errorPointer = *error; // no error here

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

1 голос
/ 14 января 2012

errorPointer и error имеют несовпадающие типы.

Исходя из имеющегося у вас кода, кажется, что ваш error аргумент должен быть просто объявлен как NSError *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...