0

J'utilise un UIViewController XIB pour créer mon UITableViewCell dans IB je mis en œuvre dans le code comme ceci:Est-ce que cela cause une fuite de mémoire et comment l'arrêter?

if(cell == nil) 
    { 
     UIViewController *viewController = [[UIViewController alloc] initWithNibName:@"TotalViewCell" bundle:nil]; 
     cell = (TotalViewCell *)viewController.view; 
     //[viewController release]; 
    } 
    [[cell totalButton] setTitle:@"$100,000" forState:UIControlStateNormal]; 

    // Action when totalButton is tapped 
    [[cell totalButton] addTarget:self action:@selector(showTotalDetail:) forControlEvents:UIControlEventTouchUpInside]; 

    return cell; 

Habituellement, je libérer la viewController mais je mis un UIButton dans cette cellule et lorsque l'utilisateur tape le bouton, showTotalDetail est appelé. Voici le code pour showTotalDetail:

-(void)showTotalDetail:(id)sender 
{ 
    // Move the totalTableView up! 
    CGRect totalDetailTableViewFrame = CGRectMake(20, 200, 280, 200); 
    [totalTableView setFrame:totalDetailTableViewFrame]; 

    // Reload the new totalTableView 
    [self viewWillAppear:YES]; 
} 

La fonction redimensionne essentiellement la tableView et le déplace vers un autre emplacement sur l'écran. Donc, si je libère le viewController, j'obtiens l'erreur EXC_BAD_ACCESS. Cela fonctionne si je ne libère pas mais j'ai peur d'avoir des fuites de mémoire.

Un conseil?

Merci.

Répondre

3

Vous créez un UIViewController pour chaque UITableViewCell? C'est un comportement plutôt non standard. Si vous avez besoin de personnaliser le comportement d'un UITableViewCell, il est probablement préférable de la sous-classer que d'utiliser un contrôleur de vue.

Si vous devez charger une cellule de vue de la table à partir d'une plume, regardez Apple Table View Programming Guide for iOS. Cet exemple est là sans utiliser un contrôleur de vue.

Quant à votre question: vous avez raison dans ce scénario, le UIViewController fuira.

+0

Oui. Je suis le guide d'ici: http://www.bdunagan.com/2009/06/28/custom-uitableviewcell-from-a-xib-in-interface-builder/ – okysabeni

+0

Je ne peux pas recommander le conseil de ce blog. –