iPhone - dequeueReusableCellWithIdentifier Verwendung

Ich arbeite an einer iPhone-app, die hat eine ziemlich große UITableView mit Daten aus dem web, so bin ich versucht, zu optimieren Ihrer Erstellung und Nutzung.

Fand ich heraus, dass dequeueReusableCellWithIdentifier ist ziemlich nützlich, aber nachdem ich viele source-codes, die mit diesem, Frage ich mich, ob der Gebrauch mache ich von dieser Funktion ist der gute.

Hier ist das, was Menschen normalerweise tun:

UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

if (cell == nil) {
  cell = [[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"Cell"];

//Add elements to the cell
return cell;

Und hier ist die Art, wie ich es gemacht habe:

//The cell row
NSString identifier = [NSString stringWithFormat:@"Cell %d", indexPath.row]; 

UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:identifier];

if (cell != nil)
  return cell;

cell = [[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:identifier];
//Add elements to the cell
return cell;

Der Unterschied ist, dass die Menschen verwenden den gleichen Bezeichner für jede Zelle, also dem entfernen eines nur vermeidet, alloc eine neue.

Für mich der Punkt, der Schlange war, daß jede Zelle eine eindeutige id, so dass, wenn die app fragt für eine Zelle ist es schon angezeigt, weder Zuordnung noch element hinzufügen müssen gemacht werden.

In Ordnung ich weiß nicht was am besten ist, das "gemeinsame" Methode ceils die Tabelle ist die Speichernutzung für die genaue Anzahl der Zellen angezeigt, während die Methode, die ich verwenden, scheint zu bevorzugen, die die Geschwindigkeit, wie es hält alle berechneten Zellen, können aber zu großen Speicherbedarf (es sei denn, es gibt eine innere Begrenzung für die Warteschlange).

Irre ich mich, es zu benutzen auf diese Weise? Oder ist es nur dem Entwickler, je nach seinen Bedürfnissen?

InformationsquelleAutor der Frage Jukurrpa | 2010-05-28

Schreibe einen Kommentar