ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЯ При прохождении NSERROR ** В качестве параметра метода
-
25-09-2019 - |
Вопрос
Я почесываю голову об этом за последние 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];