• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Einige Blicke in fremde Welten dürft Ihr nun bestaunen und darüber abstimmen, welche davon Euch am meisten gefällt: hier geht es lang für Euer Voting --> Klick

SIGABR bei FetchRequest

cedib

Finkenwerder Herbstprinz
Registriert
30.03.07
Beiträge
471
Hallo

Ich bin an der Programmierung eines Vokabeltrainers für das iPhone.
Ich habe zu diesem Zweck ein Datenmodell erstellt. Ich habe zwei Entities einmal Vocab und einmal Vocbook. Der Vokabeltrainer soll einige Vokabelbücher (Vocbooks) haben und darin jeweils einige Vokabeln (Vocab).
(Momentan will ich aber in der unten beschriebenen zweiten TableView einfach einmal alle Vocabs anzeigen.)
Ich habe das Template "Master-Detail Application" gewählt und da ist ja bereits eine Vorlage des UITableViewControllers für den MaserViewController vorhanden und ebenfalls eine Subklasse von UIViewController. Ich habe den UIViewController umfunktioniert zu einem UITableViewController. Ich habe mehr oder weniger den selben Code genommen, der schon im MasterViewController geschrieben ist und habe beim FetchRequest lediglich die Entity geändert. Jedoch gibt es jedes mal eine SIGABR wenn ich ein Vocbook aus der MasterTableView anwähle. Der SIGABR kommt, bevor die nächste TableView erscheint.

Bei folgender Zeile kommt der SIGABR:

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Vocab" inManagedObjectContext:self.managedObjectContext];

Ich habe keine Idee was ich falsch mache.
Kann mir jemand helfen? Ich bin am Ende mit meinem Latein.

Danke
Lieber Gruß
Cédric
 
Bei Abstürzen bitte immer die mitteilen was die Konsole an Fehlern ausspuckt.
Das ist normal die weit wichtigere Information.
 
2012-03-09 14:55:11.610 Voc Trainer[35834:fb03] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'Vocab''
*** First throw call stack:
(0x16b7022 0x1848cd6 0xed7d47 0x658b 0x5d32 0x2011e9 0x201ca9 0xa2baa 0xa2b35 0xb0ced 0x25478f 0x584e 0xeb38f 0xeb5eb 0xeb893 0xfbff1 0xfc85f 0xfce06 0xfca24 0x458de6 0x44d4d0 0xb3581 0xb37fa 0x94885d 0x168b936 0x168b3d7 0x15ee790 0x15edd84 0x15edc9b 0x15a07d8 0x15a088a 0x22626 0x246d 0x23d5)
terminate called throwing an exception

Die Entity Vocab gibt es jedoch.
 
Wenn wieder einmal jemand das Problem haben sollte, ich habe den managedObjectContext nicht initalisiert gehabt und daher wollte der TableViewController aus einem leeren Context fetchen.
Daher kannte er die Entity nicht.
Ich habe es so gelöst:
Bei der Methode "prepareForSegue" habe ich den objectContext vom MasterViewController dem DetailViewController übergeben.