Warum schlägt die Initialisierung der Kerndaten fehl, wenn ich dies an diesen Punkten versuche?

Ich sehe, wie ich das Problem lösen kann, aber es stört mich, dass ich nicht verstehe, warum dies nicht funktioniert. Ich habe eine UIViewController-Unterklasse, die Core Data verwendet, daher wird der NSManagedObjectContext benötigt. Der Controller wird aus einer NIB-Datei geladen, in der er sich unter einem Navigationscontroller befindet, der sich in einem Tabulatorcontroller befindet.

Ich habe versucht, dies in initWithCoder und viewDidLoad zu tun und aus irgendeinem Grund funktioniert es nicht:

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = [[appDelegate managedObjectContext] retain];

Aus irgendeinem Grund gibt managedObjectContext den Wert nil zurück und ich erhalte diesen Wert, wenn ich später versuche, ein verwaltetes Objekt zu erstellen:

*** Beenden der App aufgrund einer nicht erfassten Ausnahme 'NSInternalInconsistencyException', Grund: '+ entityForName: Eine Entität mit dem Namen' LogRecord 'konnte in diesem Modell nicht gefunden werden.'

Welches ist, was Sie erhalten, wenn Ihr Kontext Null ist oder das Modell nicht geladen werden kann (oder die Entität wirklich fehlt).

Wenn ich genau dasselbe bei meiner saveLogEntry-Methode mache (mit der verwaltete Objekte erstellt und der Kontext gespeichert wird), funktioniert das einwandfrei.

Wenn ich das mache, was die Beispielanwendung "Rezepte" macht:

- (void)applicationDidFinishLaunching:(UIApplication *)application {

    loggingViewController.managedObjectContext = self.managedObjectContext;

    // Standard stuff
    [window addSubview:tabBarController.view];
    [window makeKeyAndVisible];
}

(loggingViewController ist ein IBOutlet im App-Delegaten).

Weiß jemand, was konkret hier los sein könnte? Es scheint, als ob es fehlschlägt, wenn es "zu früh" gemacht wird, aber besonders mit viewDidLoad würde ich erwarten, dass es funktioniert, da ich denke, dass dies nach dem Aufruf von addSubview auftritt.