2009-11-19 4 views
2

Je travaille sur une application dans laquelle les uitableviewcells de uitableview sont personnalisées et contiennent un textfied (contient managedobject/données de base), label ((contains managedobject), boutons donc tous sont personnalisés. Je crée uitableview dynamiquement en utilisant SQLite.Problèmes de gestion de mémoire

My tablview UI http://grab.by/FiJ

vue même uitableview contient plus de 15 cellules. les cellules sont affichées parfaitement. mais je suis face à un problème de la mémoire occupée par les cellules.

Et si je tab sur next/prev la même vue de table est rechargée avec de nouvelles cellules (également de nouvelles données) en utilisant des données de base. Mais dans ce cas, les cellules précédentes (mémoire des cellules) doivent être libérées. Mais la mémoire augmente et augmente continuellement lors de la navigation vers d'autres vues (en utilisant le bouton prev/next).

Chose étrange est, Lorsque je fais défiler continuellement tablview en haut et en bas des cellules sont créées et créées, et la mémoire augmente progressivement.

Merci.

+3

Pourriez-vous publier votre méthode -cellForRowAtIndexPath? Difficile de pointer un problème sans voir votre code – Vladimir

+0

Vous n'utilisez peut-être pas les bonnes méthodes de réutilisation. – FelixLam

Répondre

1

Je pense que

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

ne fonctionne pas correctement.

Vérifiez que vos cellules ont le même identificateur de cellule (Vous pouvez le spécifier dans IB) que vous utilisez dans le code:

static NSString *cellIdentifier = @"myIdentifier"; 
MyCell* cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
     if (cell == nil) { 
      cell = [[[MyCell alloc] init] autorelease]; 
     } 
cell.text = @"Yahoo!"; 
... 

Je pense que ceci est votre problème.