ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЯ При прохождении NSERROR ** В качестве параметра метода

StackOverflow https://stackoverflow.com/questions/2591820

Вопрос

Я почесываю голову об этом за последние 4 часа, пробуя все виды небольших экспериментов, но я не могу понять, что происходит не так. Может ли это быть ошибкой компилятора?

Test.m:

- (id)initWithContentsOfURL:(NSURL *)aURL error:(NSError **)error
{
    if (!(self = [super init])) {
        return nil;
    }
    return self;
}

main.m:

NSError *error;

Test *t = [[Test alloc] initWithContentsOfURL:[NSURL fileURLWithPath:@"/"] error:&error];

Вот предупреждение компилятора (от Main.m):

ПРЕДУПРЕЖДЕНИЕ. Несовместимые объекты-C Типы «struct Nserror ** ', ожидаемое' struction nsdictionary ** 'При прохождении аргумента 2' initwithcontentsovurl: ошибка: 'из отчетливого типа объекта

Я использую последние версии XCode и Snow Leopard.

Это было полезно?

Решение

Я подозреваю, что это поднимает другой экземпляр селектора, initWithContentsOfURL:error: - Возможно, тот в NSAppleScript. Отказ Помните это [NSObject alloc] Возвращает АН id.

Ваш код работает, как ожидается во время выполнения?

Попробуйте кастинг возвращение [Test alloc] к Test*.

т.е.


Test *t = [(Test*)[Test alloc] initWithContentsOfURL:[NSURL fileURLWithPath:@"/"] error:&error];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top