IB3 et les Outlets

AliGatorAliGator Membre, Modérateur
octobre 2008 modifié dans Xcode et Developer Tools #1
Bonjour à  tous,

Je me remet depuis quelques temps à  Cocoa pour faire des applis iPhone.
Comme j'avais un peu arrêté le dev Cocoa, ça fait longtemps que j'avais pas lancé les outils, et le passage de IB2 à  IB3 a été un peu déroutant au début ;) Mais bon je m'y suis fait.

Pourtant il reste quelques interrogations. En particulier sur la palette d'inspecteur "Identity Inspector" :
  • Si je sélectionne mon cube "NotificationSender_Delegate", je vois bien l'IBOutlet que j'ai mis dans mon .h correspondant dans Xcode. Au dessus de cet outlet qui s'affiche dans la palette IB j'ai la mention "NotificationSender_Delegate.h" qui s'affiche, comme pour me rappeler que cet outlet a été défini dans ce .h (ben je le sais bien, j'ai sélectionné le cube justement !)
  • Par contre si je clique sur le "+" pour ajouter un Outlet depuis IB (et non via Xcode), il me rajoute un outlet dans ce même inspecteur, mais il met "MainMenu.xib" au dessus. Donc il m'a créé l'outlet... "dans le XIB" ?
  • Evidemment si je sélectionne autre chose que mon cube bleu "NotificationSender_Delegate", je n'ai plus la mention ni de l'un ni de l'autre Outlet. Et de même pas d'IBOutlet rajouté par code dans mon .h dans Xcode (dans un sens c'est logique puisqu'il m'indique qu'il est dans le XIB et pas le .h)


Du coup je ne capte pas trop ce bouton "+" et cette mention de "MainMenu.xib" au dessus. A quoi ça sert de créer un outlet "dans le XIB", et en quoi il est associé à  ce cube bleu, et surtout comment y accéder si je garde cet outlet créé par ce biais ?
Je veux dire puisque l'outlet est dans le XIB à  quoi il me sert, si je peux pas y accéder par code ? Il est où au juste ?
Et du coup, dans IB on ne peut plus créer des IBOutlets associés directement "dans un cube bleu" ? (enfin dans la classe associée quoi) et on a plus d'autre choix que de passer par Xcode ?

Réponses

  • Philippe49Philippe49 Membre
    20:58 modifié #2
    Je pense que c'est l'option File > Write Class Files qui propose ensuite si la classe existe déjà  l'option merge.
    Comme dans les IB/XCode précédents, il me semble pratique de décider entre
    • Créer sa classe et transformer dans XCode,  et assurer la mise à  jour dans IB (Read Class Files ou Reload .. ) mais à  part l'oubli d'enregistrement, je n'ai pas rencontré encore de faille aux notifications entre les deux applis
    • Créer se classe dans IB et l'enregistrer dans XCode via l'option précédente.

    Je comprends le message du nib comme un rappel du non report dans XCode, et sans vouloir rentrer dans le détail, la classe doit être effectivement être enregistrée quelque part ... comme peut-être ce fichier xib (il faudrait regarder sous sa jupe)


    Déroutant au début,  mais j'apprécie particulièrement les clic-droits et les informations croisées (reférences directes et inverses) et en arborescences.
     
Connectez-vous ou Inscrivez-vous pour répondre.