title: Cannot create an NSPersistentStoreCoordinator with a nil model
body: <p>Been having my first crack at Core Data and I'm getting the following error when running my code on my device, but it works fine on the simulator..</p>
  
  <blockquote>
    <p><em>*</em> Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an NSPersistentStoreCoordinator with a nil model'</p>
  </blockquote>
  
  <p>Some of my methods that might be causing the problem:</p>
  
  <pre><code>    - (NSManagedObjectContext *)managedObjectContext
  {
      if (__managedObjectContext != nil)
      {
          return __managedObjectContext;
      }
  
      NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
      if (coordinator != nil)
      {
          __managedObjectContext = [[NSManagedObjectContext alloc] init];
          [__managedObjectContext setPersistentStoreCoordinator:coordinator];
      }
      return __managedObjectContext;
  }
  
  /**
   Returns the managed object model for the application.
   If the model doesn't already exist, it is created from the application's model.
   */
  - (NSManagedObjectModel *)managedObjectModel
  {
      if (__managedObjectModel != nil)
      {
          return __managedObjectModel;
      }
      NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"RugbyOnTv" withExtension:@"momd"];
      __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];    
      return __managedObjectModel;
  }
  
  /**
   Returns the persistent store coordinator for the application.
   If the coordinator doesn't already exist, it is created and the application's store added to it.
   */
  - (NSPersistentStoreCoordinator *)persistentStoreCoordinator
  {
      if (__persistentStoreCoordinator != nil)
      {
          return __persistentStoreCoordinator;
      }
  
      NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"RugbyOnTV.sqlite"];
  
      NSURL *storeUrl = [NSURL fileURLWithPath:storePath];
  
      NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];    
      __persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
  
      NSError *error = nil;
      __persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
  
  
      if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&amp;error]) {
  
          NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
          abort();
      }    
  
      return __persistentStoreCoordinator;
  }
  
  
      - (NSString *)applicationDocumentsDirectory {
  
          NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
          NSString *basePath = ([paths count] &gt; 0) ? [paths objectAtIndex:0] : nil;
          return basePath;
      }
  </code></pre>
  
  <p><strong>EDIT</strong></p>
  
  <p>I copied and pasted the managedObjectContext method (below) from Apple's CoreDataBooks and it now works..Not really sure why though</p>
  
  <pre><code>- (NSManagedObjectModel *)managedObjectModel {
      if (managedObjectModel != nil) {
          return managedObjectModel;
      }
      managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];    
      return managedObjectModel;
  }
  </code></pre>