Warum ist meine app Delegat didFinishLaunchingWithOptions-Methode einmal aufgerufen, NACHDEM meine RootViewController:viewDidLoad-Methode?

Spiele ich schon mit dem iPad SplitView-Vorlage in Xcode. Hier sind zwei der vielen wichtigen Methoden, die automatisch generiert werden, für die Sie von der Split View-based Application template...

AppNameAppDelegate.m

#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    //Override point for customization after app launch    
    rootViewController.managedObjectContext = self.managedObjectContext;


    //Add the split view controller's view to the window and display.
    [window addSubview:splitViewController.view];
    [window makeKeyAndVisible];

    return YES;
}

RootViewController.m

#pragma mark -
#pragma mark View lifecycle

- (void)viewDidLoad {

    [super viewDidLoad];
    self.clearsSelectionOnViewWillAppear = NO;
    self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0);

    NSError *error = nil;
    if (![[self fetchedResultsController] performFetch:&error]) {

        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }
}

Wenn Sie erstellen und führen Sie das Projekt, bevor Sie irgendwelche änderungen an alle, die application:didFinishLaunchingWithOptions Methode aufgerufen wird, bevor die RootViewController:viewDidLoad - Methode aufgerufen wird. Ich bin neu in der iPhone-Entwicklung, aber ich nehme an, das ist das richtige und typische Sequenz. So, hier sind die Veränderungen die ich gemacht habe...

  • Sobald ich bestätigt, alles lief ohne änderungen, ich habe die RootViewController-code und legen Sie es als eine Unterklasse von UIViewController (statt UITableViewController standardmäßig) und den jeweiligen Anpassungen im Interface Builder. Ich gebaut und lief, war alles noch gut.
  • Dann, ich habe eine UIView (mit nichts drin), um die RootView in IB und wenn ich das eingebaut und es lief, plötzlich die RootViewController:viewDidLoad wird aufgerufen, bevor die application:didFinishLaunchingWithOptions Methode.

Ich brauche, um es zurück zu der Weise es war vor der Arbeit, weil, wie Sie sehen können, in den code, die Kommentarzeichen vor der viewDidLoad-Methode hängt davon ab, didFinishLauchingWithOptions Methode ausführen, so dass er den rootViewController managedObjectContext dass es verwendet, um führen Sie die fetch-Anfrage.

  1. Irgendwelche Ideen was verursacht diese?
  2. Irgendwelche Ideen, wie kann ich dieses Problem beheben?

Vielen Dank im Voraus für Eure Hilfe! Ich bin gonna keep forschen und spielen mit dem code.

InformationsquelleAutor BeachRunnerFred | 2010-05-17

Schreibe einen Kommentar