title: NSFetchRequest could not locate an NSEntityDescription for entity name
body: <p>I've tried the proposed solutions for similar questions on SO but with no luck.  The fetch request can't locate the entity name 'GarmentType'.</p>
  
  <p>Here is my data model:
  <img src="https://i.stack.imgur.com/vdiwQ.jpg" alt="enter image description here"></p>
  
  <p>The error is thrown at the executeFetchRequest in this helper category:</p>
  
  <pre><code>//
  //  GarmentType+Create.m
  //  Dressy
  //
  //  Created by Michael Mangold on 9/4/13.
  //  Copyright (c) 2013 Michael Mangold. All rights reserved.
  //
  
  #import "GarmentType+Create.h"
  
  @implementation GarmentType (Create)
  
  // Creates or fetches a Core Data GarmentType entity.
  + (GarmentType *)garmentTypeWithName:(NSString *)name inManagedObjectContext:(NSManagedObjectContext *)context
  {
      NSLog(@"name:%@ context:%@",name,context);
      GarmentType *garmentType = nil;
  
      // Build fetch request.
      NSFetchRequest *request          = [NSFetchRequest fetchRequestWithEntityName:@"GarmentType"];
      request.sortDescriptors          = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]];
      request.predicate                = [NSPredicate predicateWithFormat:@"name = %@",name];
  
      // Execute fetch requesst.
      NSError *error  = nil;
      NSArray *matches = [context executeFetchRequest:request error:&amp;error]; // This is where it dies.
  
      if (!matches || [matches count] &gt; 1) {
          NSLog(@"Error creating GarmentType.");
      } else if ([matches count] == 0) {
          garmentType          = [NSEntityDescription insertNewObjectForEntityForName:@"GarmentType" inManagedObjectContext:context];
          garmentType.name     = name;
      } else {
          garmentType = [matches lastObject];
      }
  
      return garmentType;
  }
  
  @end
  </code></pre>
  
  <p>The name logs the correct name and the context is non nil.</p>
  
  <p>The helper is called from a UITableViewController IBAction when the 'done' button is pressed:</p>
  
  <pre><code>- (IBAction)handleDoneButton:(UIBarButtonItem *)sender
  {
      // Add garment type to core data.
      [DressyHelper openDocumentUsingBlock:^(UIManagedDocument *document){
          GarmentType *newGarment = [GarmentType garmentTypeWithName:self.garmentTypeNameTextField.text inManagedObjectContext:document.managedObjectContext];
          NSLog(@"newGarment.name:%@",newGarment.name);
      }];
      [self dismissViewControllerAnimated:YES completion:nil];
  }
  </code></pre>
  
  <p>newGarment.name logs fine.</p>
  
  <p>Here is the .h for GarmentType:</p>
  
  <pre><code>#import &lt;Foundation/Foundation.h&gt;
  #import &lt;CoreData/CoreData.h&gt;
  
  @class Garment;
  
  @interface GarmentType : NSManagedObject
  
  @property (nonatomic, retain) NSString * name;
  @property (nonatomic, retain) NSSet *garments;
  @end
  
  @interface GarmentType (CoreDataGeneratedAccessors)
  
  - (void)addGarmentsObject:(Garment *)value;
  - (void)removeGarmentsObject:(Garment *)value;
  - (void)addGarments:(NSSet *)values;
  - (void)removeGarments:(NSSet *)values;
  
  @end
  </code></pre>
  
  <p>Apologies for the code dump but I've been struggling with this for a while.  Changing the entity name results in the same error, just with the new name as the entity not found.</p>
  
  <p>Inspector for GarmentType:
  <img src="https://i.stack.imgur.com/aXZsu.jpg" alt="enter image description here"></p>
  
  <p>And the exception:</p>
  
  <pre><code>2013-12-10 13:51:50.320 Dressy[4336:70b] name:asdf context:&lt;NSManagedObjectContext: 0x8ad86f0&gt;
  2013-12-10 13:51:50.323 Dressy[4336:70b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSFetchRequest could not locate an NSEntityDescription for entity name 'GarmentType''
  *** First throw call stack:
  (
      0   CoreFoundation                      0x017465e4 __exceptionPreprocess + 180
      1   libobjc.A.dylib                     0x014c98b6 objc_exception_throw + 44
      2   CoreData                            0x019b4b6e -[NSFetchRequest(_NSInternalMethods) _resolveEntityWithContext:] + 510
      3   CoreData                            0x019b34d6 -[NSManagedObjectContext executeFetchRequest:error:] + 70
      4   Dressy                              0x000051de +[GarmentType(Create) garmentTypeWithName:inManagedObjectContext:] + 510
      5   Dressy                              0x00002170 __54-[GarmentTypeAddTableViewController handleDoneButton:]_block_invoke + 208
      6   Dressy                              0x00006d51 __39+[DressyHelper openDocumentUsingBlock:]_block_invoke21 + 97
      7   UIKit                               0x00781f7b __59-[UIDocument saveToURL:forSaveOperation:completionHandler:]_block_invoke570 + 54
      8   libdispatch.dylib                   0x01e43440 _dispatch_barrier_sync_f_slow_invoke + 71
      9   libdispatch.dylib                   0x01e544b0 _dispatch_client_callout + 14
      10  libdispatch.dylib                   0x01e4275e _dispatch_main_queue_callback_4CF + 340
      11  CoreFoundation                      0x017aba5e __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 14
      12  CoreFoundation                      0x016ec6bb __CFRunLoopRun + 1963
      13  CoreFoundation                      0x016ebac3 CFRunLoopRunSpecific + 467
      14  CoreFoundation                      0x016eb8db CFRunLoopRunInMode + 123
      15  GraphicsServices                    0x03a4d9e2 GSEventRunModal + 192
      16  GraphicsServices                    0x03a4d809 GSEventRun + 104
      17  UIKit                               0x00237d3b UIApplicationMain + 1225
      18  Dressy                              0x0000585d main + 141
      19  libdyld.dylib                       0x020e670d start + 1
  )
  libc++abi.dylib: terminating with uncaught exception of type NSException
  (lldb) 
  </code></pre>
  
  <p>TIA</p>