Wie man richtig einen root-view-controller?
Nach dem Update auf xCode 4.2 ich erhalte die folgende Warnung...
Anwendungen zu erwarten sind, root-view-controller am Ende der Anwendung zu starten
Nach Lesen, so viel wie ich finden konnte Online über den RootViewController ich bin mir nicht sicher, ob ich habe meine root-view-controller ordnungsgemäß. Ich habe es vor langer Zeit, als ich das erste learning Programm in xCode.
Eine Frage, die ich habe, ist es ok, um den Namen der root-view-controller etwas anderes als RootViewController. Jedes Beispiel sehe ich, jetzt hat es mit dem Namen RootViewController. Ich sehe es auch so synthetisiert, die in der app delegieren, wie dies...
@synthesize rootViewController = _rootViewController;
Ich verstehe nicht, was dieser tut. Warum nicht einfach...
@synthesize rootViewController;
In jedem Fall änderte ich den Namen meines root-Ansicht-controller zu RootViewController und folgte dem Beispiel fand ich bei cupsofcocoa.com. Aber auch nach den änderungen bin ich noch immer das "...zu erwarten, dass ein root-controller..." - Warnung.
Wenn jemand hat die Zeit zu nehmen Sie einen Blick und lassen Sie mich wissen, was ich bin fehlt, die ich aufgezählt habe, die die wesentliche Teile von meinem code für die Initialisierung unten.
Dank,
John
//RootViewController.h
#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController {
}
@end
.
//RootViewController.m
#import "RootViewController.h"
#import "JetLoggerAppDelegate.h"
@implementation RootViewController
@end
.
//JetLoggerAppDelegate.h my app delegate
#import <UIKit/UIKit.h>
@class RootViewController;
@interface JetLoggerAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
RootViewController *rootViewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet RootViewController *rootViewController;
@end
.
//.m app delegate
#import "JetLoggerAppDelegate.h"
#import "RootViewController.h" //I don't think I need this here
@implementation JetLoggerAppDelegate
@synthesize window;
@synthesize rootViewController = _rootViewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([launchOptions count] == 0) {
_rootViewController = [[RootViewController alloc] init];
self.window.rootViewController = self.rootViewController;
[window makeKeyAndVisible];
return YES;
}else{
[JLHelper showAlertWithTitle:@"" message:[NSString stringWithFormat:@"launchOptions: %@", launchOptions]];
}
return NO;
}
.
//main.m
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"JetLoggerAppDelegate");
[pool release];
return retVal;
}
InformationsquelleAutor user278859 | 2011-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie zurück NICHT im inneren else-Anweisung, und am Ende setzen return null; Hoffe, dass dies helfen.
Eigentlich wollte ich die Zeile addSubview. Ich habe versucht, die Rückgabe null, aber es wirft eine Warnung: "nicht kompatibel Zeiger auf integer-Konvertierung....". In jedem Fall bin ich noch immer "Anwendung wird erwartet, um eine Root-Ansicht-controller..." Warnung zur Laufzeit.
InformationsquelleAutor donjordano
Anwendungen zu erwarten sind, root-view-controller
Ersetzen Sie in AppDelegate
zu
InformationsquelleAutor jeet.chanchawat