C'est quelque chose que je ne comprends pas. Regardez cette méthode (copiée à partir de http://blog.blackwhale.at/2009/07/uibutton-in-uitableview-footer/)iphone - fuira-t-il?
Voir que footerView est alloué au début du code et jamais libéré. D'après ce que je comprends, l'objet devrait être autolibéré ou au moins libéré après avoir été utilisé sur un cas normal, mais comme cette méthode est exécutée automatiquement par les tables lorsqu'elles sont construites, où cette vue sera-t-elle publiée ...
ou fuira-t-elle? J'ai vu des exemples de code Apple avec des trucs comme ça, donc je suppose que l'objet est sorti quelque part ... mais où?
// custom view for footer. will be adjusted to default or specified footer height
// Notice: this will work only for one section within the table view
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
if(footerView == nil) {
//allocate the view if it doesn't exist yet
footerView = [[UIView alloc] init];
//we would like to show a gloosy red button, so get the image first
UIImage *image = [[UIImage imageNamed:@"button_red.png"]
stretchableImageWithLeftCapWidth:8 topCapHeight:8];
//create the button
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setBackgroundImage:image forState:UIControlStateNormal];
//the button should be as big as a table view cell
[button setFrame:CGRectMake(10, 3, 300, 44)];
//set title, font size and font color
[button setTitle:@"Remove" forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
//set action of the button
[button addTarget:self action:@selector(removeAction:)
forControlEvents:UIControlEventTouchUpInside];
//add the button to the view
[footerView addSubview:button];
}
//return the view for the footer
return footerView;
}
merci.
L'iPhone peut fuir, mais l'iPad est super absorbant. – JasCav