Création d'une instance de classe par IB et dealloc

beltbelt Membre
18:24 modifié dans API AppKit #1
Si une instance de classe est crée par IB, alors celle ci reçoit au lancement de l'application un message init. Par contre elle ne semble pas recevoir de dealloc.
Dans ce cas, reçoit-elle un message particulier lui indiquant qu'elle va être déallouée ?

PS : au chapitre 7 du livre "Cocoa par la pratique - A. Hillegass", la classe AppController "instanciée" dans IB semblerait (sur le papier) recevoir un message  dealloc. est-ce une erreur ?

Réponses

  • fouffouf Membre
    18:24 modifié #2
    C'est bizarre. Normalement toute la mémoire de l'appli est vidée au moins quand on quitte. Alors, je comprends pas que cette instance ne soit pas "nettoyé" avec un dealloc.
    En tous cas, c'est toujours mieux de faire une méthode dealloc. Ca évite des failles ;)
  • ChachaChacha Membre
    18:24 modifié #3
    dans 1123190104:

    Si une instance de classe est crée par IB, alors celle ci reçoit au lancement de l'application un message init. Par contre elle ne semble pas recevoir de dealloc.
    Dans ce cas, reçoit-elle un message particulier lui indiquant qu'elle va être déallouée ?

    C'est une excccccccellente question. La preuve, je me l'étais déjà  posée :-)
    http://www.objective-cocoa.org/forum/index.php?topic=733.msg8185#msg8185
    J'avais au passage appris le "initWithCoder". Très instructif.

    +
    Chacha
  • fouffouf Membre
    18:24 modifié #4
    C'est bizarre. Dans ton post, tu dis que init n'est jamais appelé quand on a des sous-classes de NSView dans le nib. Deja, c'est initWithFrame: qui est l'initialisateur désigné, alors, il se peut que le problème vienne de là .

    Sinon, le post que tu as indiqué est super Chacha, merci ;)
  • ChachaChacha Membre
    18:24 modifié #5
    dans 1123232784:

    C'est bizarre.

    Tu commences tous tes posts comme ça, maintenant ;-)

    Bon, plus sérieusement, de mémoire, effectivement, les éléments de IB sont initialisés avec un initWithCoder, mais les custom views avec un initWithFrame. À vérifier, mais il y a une petite différence à  ce niveau.
    Ah, oui, c'était dans ce post là :
    http://www.objective-cocoa.org/forum/index.php?topic=286.msg2981#msg2981

    La vache, je me mets à  exhumer des archives. ça y est, je suis vieux.

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