Sonntag, 18. Oktober 2009

Wenn man bei der iPhone-Programmierung die allseits bekannten Listen- / Tabellenansichten verwenden will, so benutzt man die Klasse UITableView und füllt sie mit UITableViewCells. Um Platz im Hauptspeicher zu sparen und die Performance bei der Darstellung zu optimieren, werden bereits erstellte TableView-Zellen gecached und bei Bedarf wiederverwendet. Der entsprechende Code sieht so aus:


static NSString *CellIdentifier = @"identifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

// Weiter Initialisierug hier

}


Nun habe ich im Stundenplaner bei den beiden wichtigsten Listenansichten die "weitere Initialisierung" der Zellen HINTER der letzten geschweiften Klammer gemacht (dummer Anfängerfehler -.-), was zur Folge hatte, dass die Zelle jedesmal wenn sie angezeigt wird, neu berechnet wurde.... Dadurch lag der Speicherverbrauch des Programms nach ungefähr einer Minute bei ca. 20 MB und ist natürlich irgendwann einfach abgestürzt!

Da das nun gefixt ist, läuft der Stundenplan nun sehr geschmeidig und Abstürze gehören endgültig der Vergangenheit an! :-)

1 Kommentar:

  1. Hast du denn schon eine grobe Vorstellung davon, wann das Update kommt?

    AntwortenLöschen