Problème de gestion de mémoire

Philippe49Philippe49 Membre
16:47 modifié dans API AppKit #1
Le code qui est mis en commentaire provoque un message
objc[7095]: FREED(id): message retain sent to freed object=0x13f580
alors que l'autre marche bien.
Pire : Le message d'erreur  n'est pas systématique.

-(void) setImageId:(int) imid {<br />	imageId=imid;<br />	switch(imageId){<br />//		case 0:[self setImage:[NSImage imageNamed:@&quot;flagged&quot;] ];break;<br />//		case 1:[self setImage:[NSImage imageNamed:NSImageNameAddTemplate]];break;<br />//		default:[self setImage:[NSImage imageNamed:NSImageNamePathTemplate]];<br /><br />		case 0:[self setImage:[[NSImage imageNamed:@&quot;flagged&quot;] retain]];break;<br />		case 1:[self setImage:[[NSImage imageNamed:NSImageNameAddTemplate] retain]];break;<br />		default:[self setImage:[[NSImage imageNamed:NSImageNamePathTemplate] retain]];<br />	}<br />}


Pourquoi tant de haine ? Le setImage devrait normalement faire un release-retain ?


Le setImage est effectué sur une instance d'une sous-classe de NSCell.
Les images sont dans les ressources.

Réponses

  • schlumschlum Membre
    16:47 modifié #2
    Y a plus qu'à  mettre un point d'arrêt sur  -[NSImage release] et tester en debug...
  • Philippe49Philippe49 Membre
    16:47 modifié #3
    dans 1204072421:

    Y a plus qu'à  mettre un point d'arrêt sur  -[NSImage release] et tester en debug...


    Tu fais cela comment dans XCode ?

    Ouvrir la fenêtre du debugger
    Cliquer sur BreakPoints dans la barre de menu
    et taper quoi ?

Connectez-vous ou Inscrivez-vous pour répondre.