Konnte nicht gefunden NSManagedObjectModel für Entität
Das ist der code für die fetchRequest in viewDidLoad und der code gefolgt von einem tutorial gefunden hier nur, dass ich verlinkt bin, der navigation-controller und der tableview programmgesteuert anstelle der Verwendung von interface builder. Die Entität ProductInfo vorhanden ist. Jedoch wenn ich das Programm starte bekomme ich die Fehlermeldung:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'ProductInfo''
Habe ich einen reset der simulator incase es war ein altes Modell, aber der Fehler immer noch Auftritt. Ich habe auch umgestellt auf die Verwendung einer FetchedResultsController aber das problem weiterhin besteht. Ist das problem, weil diese fetchedResultsController Methoden werden nicht in der appdelegate? Sie sind derzeit in einem TableViewController. Wie kann ich dieses problem lösen?
viewDidLoad-Methode:
- (void)viewDidLoad{
NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription * entity = [NSEntityDescription entityForName:@"ProductInfo" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError * error;
self.productInfos = [_context executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];
[super viewDidLoad];}
ProductInfo.h:
@class ProductDetails;
@interface ProductInfo : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * productName;
@property (nonatomic, retain) NSString * productPrice;
@property (nonatomic, retain) ProductDetails * details;
@end
FetchedResultsController
-(NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription * entity = [NSEntityDescription entityForName:@"ProductInfo" inManagedObjectContext:_context]; //line that is causing the problem
[fetchRequest setEntity:entity];
NSSortDescriptor * sort = [[NSSortDescriptor alloc] initWithKey:@"productInfos.productName" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController * theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext: _context sectionNameKeyPath:nil cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = nil;
[sort release];
[fetchRequest release];
[theFetchedResultsController release];
return _fetchedResultsController;
}
Jede Hilfe sehr geschätzt.Vielen Dank im Voraus.
Im Falle der oben genannten Fragmenten, die ich eingefügt, hat nicht geholfen, befestigte ich das ganze Projekt mit dem Daten-Modell auch von innen.
http://www.mediafire.com/?5cns4q0sv9hqn6s
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem laufen in dieses problem vor, es klingt wie könnte es eine einfache Rechtschreibfehler in der entity-name in der xcdatamodeld-Datei. Die Zeichenfolge "ProductInfo" muss exakt mit dem Namen der Entität in der Modell-Datei.
Könnte es auch sein, dass dein Kontext ist nicht die richtige Referenz. Betrachten, zeigt etwas mehr von deinem code mit den context-wenn die oben nicht das Problem zu beheben.
Passiert mir jedes mal, wenn ein Schalter die Entwicklung von Computern. Was ich zu tun habe ist