Bonjour à tous,
J'ai des fuites mémoire dans mon application.
J'ai une classe Demande avec des propriétés définies par property/synthesize.
J'ajoute des objets de type Demande dans un tableau. Ce tableau est déclaré dans le appDelegate avec property/synthesize. Il est remplit une première fois lorsque l'app a finit de se lancer (appDidFinishLaunching):
...
Demande *dem =[[Demande alloc] init];
dem.demTitle=titre;
dem.demId=Id;
[tab_Demandes addObject:dem];
[dem release];
...
Je souhaite plus tard re-remplir ce tableau.
Cela se fait dans la classe MyTableViewController:
[[appDelegate tab_Demandes] removeAllObjects];
...
Demande *dem =[[Demande alloc] init];
dem.demTitle=titre;
dem.demId=Id;
dem.demCreated=created;
[[appDelegate tab_Demandes] addObject:dem];
[dem release];
...
Je veux faire un [[appDelegate tab_Demandes] removeAllObjects] depuisTableViewController avant de re remplir mon tableau pour effacer les demandes ajoutées dans appDelegate. Mais mon appli plante sur le remove: bad_access.
Si je ne fais pas de remove, je n'ai pas de fuites mémoire mais mes demandes sont alors en double.
Si je ne fais pas de [dem release] dans appDelegate alors je peux faire un remove dans TableViewController et mon tableau est ok. Mais alors j'ai une fuite mémoire: autant que le nombre de dem non releasées.
Si je release dem : pas de fuites, pas de remove donc demandes en double
Si je ne release pas dem : remove fonctionne, tableau ok mais fuites.
Je peux faire un [[appDelegate tab_Demandes] removeAllObjects] depuis appDelegate mais pas depuis une autre classe.
J'espère avoir été clair, je ne comprends pas trop ce qui se passe en fait.
C'est ma première app.
Merci pour toute aide.
J'ai des fuites mémoire dans mon application.
J'ai une classe Demande avec des propriétés définies par property/synthesize.
J'ajoute des objets de type Demande dans un tableau. Ce tableau est déclaré dans le appDelegate avec property/synthesize. Il est remplit une première fois lorsque l'app a finit de se lancer (appDidFinishLaunching):
...
Demande *dem =[[Demande alloc] init];
dem.demTitle=titre;
dem.demId=Id;
[tab_Demandes addObject:dem];
[dem release];
...
Je souhaite plus tard re-remplir ce tableau.
Cela se fait dans la classe MyTableViewController:
[[appDelegate tab_Demandes] removeAllObjects];
...
Demande *dem =[[Demande alloc] init];
dem.demTitle=titre;
dem.demId=Id;
dem.demCreated=created;
[[appDelegate tab_Demandes] addObject:dem];
[dem release];
...
Je veux faire un [[appDelegate tab_Demandes] removeAllObjects] depuisTableViewController avant de re remplir mon tableau pour effacer les demandes ajoutées dans appDelegate. Mais mon appli plante sur le remove: bad_access.
Si je ne fais pas de remove, je n'ai pas de fuites mémoire mais mes demandes sont alors en double.
Si je ne fais pas de [dem release] dans appDelegate alors je peux faire un remove dans TableViewController et mon tableau est ok. Mais alors j'ai une fuite mémoire: autant que le nombre de dem non releasées.
Si je release dem : pas de fuites, pas de remove donc demandes en double
Si je ne release pas dem : remove fonctionne, tableau ok mais fuites.
Je peux faire un [[appDelegate tab_Demandes] removeAllObjects] depuis appDelegate mais pas depuis une autre classe.
J'espère avoir été clair, je ne comprends pas trop ce qui se passe en fait.
C'est ma première app.
Merci pour toute aide.