Obtenir premier message d'instance...

16:03 modifié dans API AppKit #1
Re-Bonjour,

+ (void)initialize
Est une methode de classes appellée lors de la première "utilisation" de la classe.

Savez-vous si cela existe pour une instance ?
Je m'explique : j'ai ajouté des NSTextField dans IB, mais je ne sais jamais de quelle façon IB crée mon instance (depuis un initWithFrame... ou autre unarchive...). Je souhaiterais donc savoir de manière fable quand mon object va être utilisé.

Michaël.

Réponses

  • Philippe49Philippe49 Membre
    juillet 2008 modifié #2
    Si ton instance est créée à  partir d'un nib, le message  -(void) awakeFromNib est envoyé à  ton TextField une fois le travail du désarchivage du nib effectué.

  • schlumschlum Membre
    16:03 modifié #3
    - (id)initWithCoder:(NSCoder *)decoder
  • juillet 2008 modifié #4
    Oui je connais ces deux méthodes et dans ces cas elles ont tous leur sens mais j'aurais bien aimé une réellement adaptée à  ce genre de chose comme + (void)initialize l'est.

    Si par exemple je crée le control à  la main il faudra aussi "ajouter" initWithFrame ou autre init...
  • schlumschlum Membre
    16:03 modifié #5
    Il n'y a pas de dénominateur commun aux fonctions "init"... Elles sont toutes indépendantes.
    Donc il faut toutes les surcharger.
    Par contre, en général on met tout le code dans la plus complète et on l'appelle dans les autres.
  • CéroceCéroce Membre, Modérateur
    16:03 modifié #6
    En effet, quand il y en a plusieurs, on ne sait pas toujours laquelle des méthodes -init... va être appelée.
    Dans les cas d'ambiguà¯té, la doc d'Apple précise quelle méthode init... est le "Designated Initializer". Il s'agit de la méthode appelée lors de l'instanciation depuis le .nib.
Connectez-vous ou Inscrivez-vous pour répondre.