2012-04-11 3 views
1

In letzter Zeit, als ich auf xcode 4.3.2 aktualisiert habe, habe ich auf zahlreiche neue Probleme gestoßen. In meiner App-View-Controller-M-Datei bekomme ich den Fehler "kann nicht super verwenden, weil es eine Root-Klausel ist."Xcode 4.3.2 gibt Fehler "kann super nicht verwenden, weil es eine Stammklasse ist"

Ich habe im Internet stundenlang gesucht, so würde jede Hilfe geschätzt werden.

Dank

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} 

@end 
+0

Zeigen Sie uns den fehlerhaften Code bitte. –

+0

Sind Sie sicher, dass es "Klausel" und nicht "Klasse" heißt? –

+0

Sorry es sagt Klasse. –

Antwort

4

Wenn Sie Ihre Klasse deklariert, vergessen Sie wahrscheinlich die übergeordnete Klasse in der @interface Linie. Zum Beispiel haben Sie

@interface MyClass 
{ 
    // ... ivars ... 
} 

// ... methods ... 

@end 

Sie möchten, dass erste Zeile sein:

@interface MyClass : NSObject 

oder was auch immer übergeordnete Klasse Sie verwenden soll.

+0

Ja, der Hinweis ist in der Fehlermeldung. Manchmal müssen die Leute versuchen, Probleme selbst zu lösen, ohne bei irgendeinem kleineren Schluckauf zur Stack Overflow-Community zu gehen. – jrtc27

+5

Nun, diese spezielle Fehlermeldung beruht darauf, dass der Entwickler weiß, was eine "Wurzelklasse" in Objective-C ist. Das ist ein etwas unklares Thema. –

+0

Nachdem ich das gesagt hatte, habe ich es nicht ausgearbeitet. "Wurzel" hat normalerweise etwas damit zu tun, dass nichts weiter oben in der Kette ist, und "Klasse" bedeutet Klasse. Plus, ich bin sicher, dass es viele Google-Ergebnisse für dieses Problem gibt! – jrtc27

6

Dieser Fehler kann auch auftreten, wenn Ihre Klasse von einer anderen benutzerdefinierten Klasse erbt und Sie eine Forward-Deklaration Ihrer Vorgängerklasse() in Ihrer Header-Datei verwendet haben, aber #import Ihre Vorgängerklasse in der Implementierungsdatei vergessen haben.

-1

Mit dieser Lösung wird dazu beitragen, einhüllen begegnet man dieses Problem in phonegap

#import <Cordova/CDVViewController.h> 
#import <Cordova/CDVCommandDelegateImpl.h> 
#import <Cordova/CDVCommandQueue.h> 

@interface MainViewController : CDVViewController 
@end 

@interface MainCommandDelegate : CDVCommandDelegateImpl 
@end 

@interface MainCommandQueue : CDVCommandQueue 
@end 
Verwandte Themen