Dans mon application iPad,Quand libérer des objets créés dynamiquement
J'ai une classe personnalisée héritée de UIButton.
J'ajoute dynamiquement les boutons de ma vue principale en utilisant la boucle for.
Ce bouton a également une étiquette.
Mon problème est de savoir quand libérer les objets de la classe personnalisée.
for(NSMutableDictionary *dict in Categories)
{
Category *category=[[Category alloc] initWithName:[dict valueForKey:@"category_name"] identity:[[dict valueForKey:@"category_id"] intValue] imageName:nil];
category.lblimagesCount=[[UILabel alloc] initWithFrame:CGRectMake(category.frame.size.width-31, category.frame.origin.y-42, 26, 26)];
[category addSubview:category.lblimagesCount];
[self.viewHeader addSubview:category];
[category release];
category=nil;
}
Comment éviter les fuites de mémoire. Spécialement pour 1. Étiquettes 2. Catégorie.
Où écrire sa publication?
i. La classe de catégorie (UIButton) a sa méthode dealloc mais elle n'est jamais appelée.
ii. Comme je le relâche immédiatement après l'avoir ajouté à la sous-vue, cela affectera-t-il mon clic sur le bouton.
iii. Quand devrais-je libérer les étiquettes?
Très confus au sujet de la gestion de la mémoire.
@Antoonio Comment l'étiquette sera-t-elle associée à la catégorie? –
Parce qu'Antonio ce qui se passe que si je libère les étiquettes après l'avoir ajouté aux sous-vues, je ne peux pas le modifier plus loin dans le code. Comme les étiquettes ne reflètent pas les changements. –
Comme je l'ai déjà lu lorsque vous ajoutez une sous-vue, votre vue n'appartient pas à l'ensemble des propriétés de votre objet. –