managedObjectContext es nil
Estoy tratando de agregar datos básicos a un proyecto existente. He:
1) agregó el marco de Core Data 2) agregó los accesores y las propiedades al AppDelegate 3) creó el archivo del modelo de datos
Ahora cuando trato de llamarNSManagedObjectContext *context = [self managedObjectContext];
desde un controlador de vista, el contexto es nulo y el managedObjectContext nunca se dispara.
Aquí está el AppDelegate:
<code>#import "XXXAppDelegate.h" #import <CoreData/CoreData.h> @implementation XXXAppDelegate @synthesize window=_window; @synthesize navigationController=_navigationController; @synthesize managedObjectContext = _managedObjectContext; @synthesize managedObjectModel = _managedObjectModel; @synthesize persistentStoreCoordinator = _persistentStoreCoordinator; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // Add the navigation controller's view to the window and display. self.window.rootViewController = self.navigationController; [self.window makeKeyAndVisible]; return YES; } // Explicitly write Core Data accessors - (NSManagedObjectContext *) managedObjectContext { if (managedObjectContext != nil) { return managedObjectContext; } NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator]; if (coordinator != nil) { managedObjectContext = [[NSManagedObjectContext alloc] init]; [managedObjectContext setPersistentStoreCoordinator: coordinator]; } return managedObjectContext; } - (NSManagedObjectModel *)managedObjectModel { if (managedObjectModel != nil) { return managedObjectModel; } managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil]; return managedObjectModel; } - (NSPersistentStoreCoordinator *)persistentStoreCoordinator { if (persistentStoreCoordinator != nil) { return persistentStoreCoordinator; } NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"<Project Name>.sqlite"]]; NSError *error = nil; persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; if(![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) { /*Error for store creation should be handled in here*/ } return persistentStoreCoordinator; } - (NSString *)applicationDocumentsDirectory { return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; } @end </code>
EDITAR: aquí está mi código controlador de vista
<code>NSManagedObjectContext *context = [self managedObjectContext]; NSManagedObject *cardSet = [NSEntityDescription insertNewObjectForEntityForName:@"CardSet" inManagedObjectContext:context]; [cardSet setValue:@"Set 1" forKey:@"cardSetName"]; </code>