Compiler -Warnung beim Übergeben von NSError ** als Methodeparameter
-
25-09-2019 - |
Frage
Ich habe mich in den letzten 4 Stunden am Kopf kratzt und alle möglichen kleinen Experimente ausprobiert, aber ich kann nicht herausfinden, was schief geht. Könnte dies ein Compiler -Fehler sein?
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];
Hier ist die Compiler -Warnung (von Main.M):
WARNUNG: Inkompatible Objektiv-C-Typen 'Struktur nSerror **', erwartete 'Struktur nsdictionary **' beim Übergeben von Argument 2 von 'initWithContentsOfurl: Fehler: Aus unterschiedlichem Objektiv-C-Typ
Ich verwende die neuesten Versionen von Xcode und Snow Leopard.
Lösung
Ich vermute, dass es eine andere Instanz des Selektors aufnimmt, initWithContentsOfURL:error:
- Vielleicht der in NSAppleScript
. Erinnere dich daran [NSObject alloc]
Gibt ein zurück id
.
Funktioniert Ihr Code wie erwartet zur Laufzeit?
Versuchen Sie, die Rückkehr von zu werfen [Test alloc]
zu Test*
.
dh
Test *t = [(Test*)[Test alloc] initWithContentsOfURL:[NSURL fileURLWithPath:@"/"] error:&error];