| 

.NET C# Java Javascript Exception

1
Hallo Leute,

ich lese aus Core Data Daten in die Tabelle ein. Einmal für die Sections und einmal für die Rows.
Mein Core Data ist so aufgebaut, wie dieses bild hier: http://blog.sallarp.com/wp-content/uploa…el-2-300x91.png
(Ein bild von dieser Seite: http://blog.sallarp.com/iphone-core-data…iew-drill-down/)

Mein Schema:

EntitySet <---------->> EntityRow <---------->>EntityDetails


Das einlesen der Sections und der Rows funktioniert. Allerdings habe ich das Problem, dass einfache ALLE Daten der EntityRow in jeder Section angezeigt werden.
Was kann hierbei falsch sein? Fehler bei den Relationships oder eher ein Fehler in der Methode tableView:cellForRowAtIndexPath: ?

Ich bin davon ausgegangen, dass Core Data es mit den Relationships bereits löst. Jetzt bin ich auf dem Weg, meinen Fehler zu finden, bzw. das Problem zu lösen,
sodass in den Sections, nur DIE rows angezeigt werden soll, denen diese zugehören.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

EntityRows *rows = [_rowsX objectAtIndex:indexPath.row];

cell.textLabel.text = rows.title;

return cell;
}


Herzlichen Dank für jegliche Hilfe,
brush51
22.09.2011
brush51 67 1 4
1 Antwort
1
Hallo brush51,

in der Methode cellForRowAtIndexPath solltest du die section des indexPath auswerten, die berücksichtigst du nicht! Daher landen alle Zellen in jeder Section.

also etwa:
if(indexPath.section == 0) {
// erzeuge die Zellen, die zur Section 0 gehören
}

sections / rows kann man sich wie ein 2 dimensionales Array vorstellen.
mit numberOfRowsInSection gibst du die Anzahl Rows vor, die dann für die jeweiligen Sections abgefragt werden.
Gruß
Daniel
22.09.2011
puls200 3,8k 7
Danke für deine Antwort puls200. Das war das was ich gesucht habe. Wie zeige ich dann aber die richtigen rows in der passenden, richtigen section an?? Die Anzahl, sowie auch die Inhalte der Sections und Rows sind dynamisch und kommen aus coreData. Danke nochmals.
brush51 23.09.2011
Verwende indexPath einfach als index in deine Arrays! Keine Ahnung wie dein Code aussieht aber sowas in der richtung
NSArray * sectionRows = [sections objectAtIndex:indexPath.section];
EntityRow* entityRow = [sectionRows objectAtIndex:indexPath.row];
cell.textLabel.text = row.title;
Gruß,
Daniel
puls200 23.09.2011
1
Alternativ kannst du dir auch aus deinem Array mit Daten für jede Section ein eigenes zusammenbasteln. Darin kannst du dann mit dem Index der selektierten oder zu bauenden Celle einfach navigieren.
Maverick1st 21.10.2011

Stelle deine Ios-Frage jetzt!