Recherche d'une fuite...
Alf1996
Membre
Bonsoir,
Je suis en train de rechercher une fuite sur mon application, alors je l'ai fait tourner pendant environ 1 minute avec "Run with performance tool / leaks" en cliquant un peu partout. D'après ce que je vois, il y a fuite ! J'ai également constaté que la fuite apparaissait à chaque click sur un segmented control (toujours le même), donc je me dis que la recherche devrait être facile, mais je bloque sur les informations qui sont données sur la fenêtre... Quelqu'un pourrait-il m'éclairer ?
Merci d'avance.
J'essaie de joindre une copie d'écran...
Je suis en train de rechercher une fuite sur mon application, alors je l'ai fait tourner pendant environ 1 minute avec "Run with performance tool / leaks" en cliquant un peu partout. D'après ce que je vois, il y a fuite ! J'ai également constaté que la fuite apparaissait à chaque click sur un segmented control (toujours le même), donc je me dis que la recherche devrait être facile, mais je bloque sur les informations qui sont données sur la fenêtre... Quelqu'un pourrait-il m'éclairer ?
Merci d'avance.
J'essaie de joindre une copie d'écran...
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Voila, j'espère avoir mis tout ce qui peut servir... En fait, il semble que la fuite n'apparaisse que lorsque je clique sur le segmentedControl "appareil". Ce qui me surprend, c'est qu'il se passe la même chose (au niveau du code) que lorsqu'on clique sur l'un des deux autres SegmentedControls, or il n'y a pas de fuites sur les deux autres...
Je crois que le problème doit se situer dans la relecture des dictionnaires... J'ai un peu galéré avec les NSMutableDictionnary et j'ai dû me compliquer la vie... !!!
Merci en tout cas si tu peux m'éclairer... :P
As-tu une bonne raison de faire une copie ?
Cecie ne serait pas mieux:
à la place de :
en partant du principe que tu as mis un retain en déclarant dicoPistes.
J'ai effectivement un retain à la déclaration de dicoPistes car j'en ai besoin régulièrement pour faire tourner un pickerView. Dans mon .h, j'ai ceci :
J'ai utilisé la copie car je n'arrivais pas à lire directement le dico à partir du plist, mais je crois que je n'avais pas mis "autorelease". Je n'avais pas compris son utilisation. Alors, juste pour confirmer, cela me permets de ne pas mettre [dicoPistes release] et à chaque fois que je fais un nouvel alloc, il fait tout seul le release avant d'attribuer une nouvelle valeur ? Sachant que je ne peux pas faire de release, vu que j'ai besoin de mon dico...
Si c'est bien çà , je viens enfin de comprendre un point crucial sur la gestion des variables et de la mémoire...
Merci encore Muqaddar
T'es vraiment trop fort (et moi trop nulle ! )
Encore merci de répondre à des questions que tu dois trouver super bête...
Tu t'y intéresses et notamment aux fuites, et c'est un excellent point.
Comme tu déclares une propriété retain sur ta variable, il faut absolument que tu envoies un objet autoreleasé lorsque tu utilises le setter, sinon il y aurait un double retain, donc une fuite mémoire.
C'est ce que j'avais compris, c'est pourquoi j'ai passé un bon moment à chercher cette fuite... Je pense que même si j'y ai passé pas mal de temps, ce n'était pas du luxe... Cela m'a permis de comprendre, du moins je l'espère, ce que j'avais lu à maintes reprise... sans rien comprendre apparemment ! Mais avec cet exemple concret c'était vraiment beaucoup plus clair... J'espère que ce post permettra à d'autres nioubs d'y voir plus clair également...
OK merci beaucoup pour ces éclaircissements...