Hallo Zusammen,
mein Ziel ist recht einfach. Ich habe zwei Entities, die in einer 1:n-Beziehung stehen. Dazu gibt es zwei TableViewController. Auf dem ersten TVC möchte ich die Einträge des ersten Entity anzeigen und dazu gehörig die Anzahl der "n"-Beziehungen. Die Entities heissen "Overview" und "Detaillist". Die Anzahl der Detaillist-Einträge zum passenden Overview-Eintrag sollen in jeder Tabellen-Zelle angezeigt werden.
Relationship vom Overview zur Detaillist lautet 'detail' - und umgekehrt 'overview'. In beiden Entities gibt es u.a. jeweils ein Attribut 'title'
Mein Code für die Konfiguration der TableViewCell
Alles anzeigen
Die Fehlermeldung, die ich bekomme lautet "keypath Overview.title not found in entity <NSSQLEntity Overview id=2>"
Wahrscheinlich habe ich das setEntity und den Predicate total falsch aufgebaut ...
Nur falls sich jemand über die Methode wundert, ist aus den Std.Apple-Vorlagen kopiert.
Die Methode wird in -tableView:cellForRowAtIndePath aufgerufen. Das klappt ja auch bereits ohne Probleme.
fetchedResultsController ist auch in eigener Methode ausgelagert. Aber der wird ja nur zu Beginn der View einmal aufgerufen und liefert ja auch die richtigen Ergebnisse aus, sollte also irrelvant sein. Deswegen baue ich ja auch in der configureCell:atIndexPath einen neuen FetchRequest für die Zählerei auf.
Danke für Eure Unterstützung.
(nur der Form halber ... ich habe selbstverständlich vorweg in diesem und anderen Foren gesucht. Da wird auch prima die Zählweise mit countForFetchRequest erläutert, aber irgendwas stimmt mit meinem setEntity noch nicht).
Gruß
Horst
mein Ziel ist recht einfach. Ich habe zwei Entities, die in einer 1:n-Beziehung stehen. Dazu gibt es zwei TableViewController. Auf dem ersten TVC möchte ich die Einträge des ersten Entity anzeigen und dazu gehörig die Anzahl der "n"-Beziehungen. Die Entities heissen "Overview" und "Detaillist". Die Anzahl der Detaillist-Einträge zum passenden Overview-Eintrag sollen in jeder Tabellen-Zelle angezeigt werden.
Relationship vom Overview zur Detaillist lautet 'detail' - und umgekehrt 'overview'. In beiden Entities gibt es u.a. jeweils ein Attribut 'title'
Mein Code für die Konfiguration der TableViewCell
Quellcode
- - (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
- {
- // Vorbereitung Attribute aus Overview-Entity
- Overview *overview = [_frc objectAtIndexPath:indexPath];
- //Vorbereitung Counting
- NSFetchRequest *countingRequest = [[NSFetchRequest alloc] init];
- [countingRequest setIncludesSubentities = YES];
- [countingRequest setEntity:[NSEntityDescription entityForName:@"Overview" inManagedObjectContext:self.moc]];
- [countingRequest setPredicate:[NSPredicate predicateWithFormat:@"Overview.title == %@", overview.title]];
- NSInteger anzahl = [self.moc countForFetchRequest:countingRequest error:nil]; //!!! Abbruch hier
- // Ausgabe
- cell.textLabel.text = overview.title; // funktioniert
- NSLog(@"Für cell.detailTextLabel.text zeige die Anzahl %i, anzahl);
- }
Die Fehlermeldung, die ich bekomme lautet "keypath Overview.title not found in entity <NSSQLEntity Overview id=2>"
Wahrscheinlich habe ich das setEntity und den Predicate total falsch aufgebaut ...
Nur falls sich jemand über die Methode wundert, ist aus den Std.Apple-Vorlagen kopiert.
Die Methode wird in -tableView:cellForRowAtIndePath aufgerufen. Das klappt ja auch bereits ohne Probleme.
fetchedResultsController ist auch in eigener Methode ausgelagert. Aber der wird ja nur zu Beginn der View einmal aufgerufen und liefert ja auch die richtigen Ergebnisse aus, sollte also irrelvant sein. Deswegen baue ich ja auch in der configureCell:atIndexPath einen neuen FetchRequest für die Zählerei auf.
Danke für Eure Unterstützung.
(nur der Form halber ... ich habe selbstverständlich vorweg in diesem und anderen Foren gesucht. Da wird auch prima die Zählweise mit countForFetchRequest erläutert, aber irgendwas stimmt mit meinem setEntity noch nicht).
Gruß
Horst
----
Macht's gut und danke für den Fisch
Macht's gut und danke für den Fisch