SORU
28 Mayıs 2010, Cuma


iPhone - dequeueReusableCellWithİdentifier kullanımı

Veri alınan web ile oldukça büyük bir UİTableView olan bir iPhone uygulaması üzerinde çalışıyorum, oluşturulması ve kullanımı optimize etmeye çalışıyorum.

DequeueReusableCellWithİdentifier oldukça yararlıdır, ama birçok kaynak kodları kullanarak bu gördükten sonra, eğer bu fonksiyon kazanıyorum kullanımı iyi biri olup olmadığını merak ediyorum öğrendim.

İnsanlar genelde ne burada

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

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

// Add elements to the cell
return cell;

Ve burada yaptığım gibi

// 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;

Farkı insanlar dequeuing sadece yeni bir tahsis için önler; böylece her hücre için aynı tanımlayıcı kullanın.

Benim için, kuyruk noktası her hücre benzersiz bir tanımlayıcı vermek için, app bir cep istediğinde bu zaten, ne tahsis, ne de eleman yapılmak zorunda ekleme görüntüleniyor.

. ben^>GüzelBilmiyorum, hangisi en iyisi, "ortak" yöntemi hücreleri tablonun bellek kullanımı için tam sayısı hücrelerini ekran, whislt yöntemi kullanıyorum sanki iyilik hız olarak tutar hesaplanan hücreler, ama neden büyük bellek tüketimi (yoksa bir iç sınırı için sıraya).

Yanlış bu şekilde kullanmak zorunda mıyım? Yoksa sadece developper, kendi ihtiyaçlarına bağlı olarak uygun mu?

CEVAP
28 Mayıs 2010, Cuma


dequeueReusableCellWithIdentifier amacı, daha az bellek kullanacak. Eğer ekran veya 5 Tablo hücreleri 4 sığabilecek, daha sonra yeniden birlikte masa 1000 giriş varsa bile sadece 4 veya 5 Tablo hücreleri bellekte ayrılmış olması gerekir.

İkinci şekilde yeniden diye bir şey yok. Sadece tablo hücreleri bir dizi kullanarak ikinci şekilde avantajı yok. Eğer tablo 1000 girişleri varsa o zaman 1000 hücre bellekte ayrılmış olacak. Eğer bunu yapacaksanız, bir dizi koyun ve sadece satır sayısı ile dizi indeksi ve hücre geri dönersin. Dinamik ya da büyük bir tablo için makul bir çözüm olabilir sabit hücreleri ile küçük tablolar için iyi bir fikir değildir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Exalto_Gamer

    Exalto_Gamer

    15 EKİM 2014
  • Lupe Fiasco

    Lupe Fiasco

    23 ŞUBAT 2006
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009