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.
Oui. Je suis le guide d'ici: http://www.bdunagan.com/2009/06/28/custom-uitableviewcell-from-a-xib-in-interface-builder/ – okysabeni
Je ne peux pas recommander le conseil de ce blog. –