NSLog et Xcode 3

chaps31chaps31 Membre
10:42 modifié dans API AppKit #1
La question semble stupide mais où est ma fenêtre log avec xcode 3 ???? J'ai l'habitude de contrôler avec NSLog mais je ne vois pas où faire apparaitre la fenêtre de log !!!!

SOS Merci

Réponses

  • schlumschlum Membre
    10:42 modifié #2
    La fenêtre est toujours là , mais pas affichée par défaut... C'est quelque part dans le menu (" Console " je crois).
  • FloFlo Membre
    10:42 modifié #3
    sinon ya le bon vieux raccourcis pomme + majuscule + r ! 

    attention, asser proche de celui pour compiler qui est pomme + r.

    Sinon certain que je trouve pas mal:

    pomme + majuscule + y  => pour lancer le débugger
    pomme + y    => pour débugger
    pomme + majuscule + c    => explorateur de classes
  • chaps31chaps31 Membre
    10:42 modifié #4
    Merci
  • AliGatorAliGator Membre, Modérateur
    10:42 modifié #5
    L'endroit où se trouve affichés les messages de console (NSLog) dans Xcode dépend aussi du "Layout" choisi dans les préférences. Moi j'ai choisi "All-in-One" donc tout est dans la même fenêtre, en mode édition de code je vois mes "Groups & Files" à  gauche, ainsi que mon éditeur à  droite, et quand je lance mon appli en Debug, ça bascule automatiquement sur la vue Debug (avec la vue de la console en bas, et la vue de la Stack en haut etc) donc je vois les logs ici.

    (D'ailleurs si qqun connaà®t une astuce pour automatiquement rebasculer en mode "édition de code" quand l'appli a quitté ça m'intéresse)
  • chaps31chaps31 Membre
    10:42 modifié #6
    Où se trouve le réglage de préférence ? Car mes NSLog n'apparaissent pas dans la fenêtre console... :(
  • CéroceCéroce Membre, Modérateur
    10:42 modifié #7
    La console n'est qu'une redirection de la sortie standard Unix. À mon avis, si tu ne vois pas tes NSLog(), c'est qu'ils ne sont pas exécutés.
    Les NSLog() apparaissent également dans le journal système (Applications > Utilitaires > Console).
  • NseaProtectorNseaProtector Membre
    10:42 modifié #8
    Essaye de créer un projet vide ou dans ton projet de mettre un NsLog dans le main, si là  ça ne marche pas, on pourra dire que tu as un soucis, si ça marche dans le main et pas ailleurs, alors tu pourras conclure que les logs ne sont pas exécutés.

    int main(int argc, char *argv&#91;])<br />{<br />&nbsp; &nbsp; return NSApplicationMain(argc,&nbsp; (const char **) argv);<br /> NSLog(@&quot;Test&quot;);<br />}
    
  • chaps31chaps31 Membre
    10:42 modifié #9
    Un  réglage doit m'échapper aucun de mes NSLog n'apparait dans la console que ce soit via Xcode ou via l'utilitaire... Y compris le NSLog dans le main.... Nada.... Une idée ?
  • schlumschlum Membre
    10:42 modifié #10
    dans 1227512005:

    Essaye de créer un projet vide ou dans ton projet de mettre un NsLog dans le main, si là  ça ne marche pas, on pourra dire que tu as un soucis, si ça marche dans le main et pas ailleurs, alors tu pourras conclure que les logs ne sont pas exécutés.

    int main(int argc, char *argv&#91;])<br />{<br />&nbsp; &nbsp; return NSApplicationMain(argc,&nbsp; (const char **) argv);<br /> NSLog(@&quot;Test&quot;);<br />}
    



    Pour le coup, un "NSLog" derrière un "return" ça ne prouvera pas grand chose  :P
  • CéroceCéroce Membre, Modérateur
    10:42 modifié #11
    Il n'existe pas de réglage pour NSLog() à  ma connaissance.
    N'as tu pas oublié le @ devant la chaà®ne ? Sinon, je ne vois pas.

    NSLog(@&quot;Test&quot;);
    
  • chaps31chaps31 Membre
    10:42 modifié #12
    oups en effet dans le main, mettre le NSLog avant le return va beaucoup mieux  :P
    Bon y'a plus qu'à  chercher pourquoi mes NSLog eux boudent...
  • chaps31chaps31 Membre
    10:42 modifié #13
    Bon je comence par coder ma classe de gestion de base de données, ça débute par un contrôle quela base existe sinon ça la cré, awakeFromNib marche différemment dans xcode 3 ?? Car un awakefromnib seul avec juste un nslog dedans n'exécute pas le NSLog....

    En général lorsqu'un truc suréaliste et totalement incompréhensible arrive c'est que la boulette est plus grosse que moi et devant mes yeux sans que je la vois pas...  :P
  • schlumschlum Membre
    10:42 modifié #14
    Ta classe est bien instanciée dans un .nib qui est chargé ?
  • chaps31chaps31 Membre
    10:42 modifié #15
    Merci, quand je disais que j'alais avoir honte...  ::)
  • tabliertablier Membre
    10:42 modifié #16
    Euh, si je ne me trompe pas, la classe doit être instanciée ET connectée à  l'application comme "delegate", sinon elle ne reçoit jamais le message "awakeFromNib".
  • CéroceCéroce Membre, Modérateur
    10:42 modifié #17
    Euh, ben si, tu te trompes  B)

    awakeFromNib
    Prepares the receiver for service after it has been loaded from an Interface Builder archive, or nib file.

    - (void)awakeFromNib

    Discussion
    An awakeFromNib message is sent to each object loaded from the archive, but only if it can respond to the message, and only after all the objects in the archive have been loaded and initialized.

  • schlumschlum Membre
    10:42 modifié #18
    Oh non, c'est général... Quand un .nib se charge, il initialise tous ses objets, puis appelle "awakeFromNib" sur tous ceux qui y répondent  ;)
  • chaps31chaps31 Membre
    10:42 modifié #19
    En effet ca marche
  • tabliertablier Membre
    10:42 modifié #20
    Ah! oui, vous avez raison!!!  o:)
    Ma confusion vient du fait que j'utilise peu "awakeFromNib" mais très souvent "applicationWillFinishLaunching:". D'expérience, je sais que cette méthode n'est pas exécutée si je ne connecte pas le "Delegate".
    Bon, passons!
  • schlumschlum Membre
    10:42 modifié #21
    dans 1227531252:

    Ah! oui, vous avez raison!!!  o:)
    Ma confusion vient du fait que j'utilise peu "awakeFromNib" mais très souvent "applicationWillFinishLaunching:". D'expérience, je sais que cette méthode n'est pas exécutée si je ne connecte pas le "Delegate".
    Bon, passons!


    Ce qui est somme toute logique vu que "applicationWillFinishLaunching" est une "delegate method"  :P
  • ChachaChacha Membre
    10:42 modifié #22
    dans 1227532638:

    Ce qui est somme toute logique vu que "applicationWillFinishLaunching" est une "delegate method"  :P

    À noter qu'on peut aussi, sans être delegate, s'enregistrer pour recevoir la notification correspondante.

    +
    Chacha
  • NseaProtectorNseaProtector Membre
    10:42 modifié #23
    dans 1227517771:

    dans 1227512005:

    Essaye de créer un projet vide ou dans ton projet de mettre un NsLog dans le main, si là  ça ne marche pas, on pourra dire que tu as un soucis, si ça marche dans le main et pas ailleurs, alors tu pourras conclure que les logs ne sont pas exécutés.

    int main(int argc, char *argv&#91;])<br />{<br />&nbsp; &nbsp; return NSApplicationMain(argc,&nbsp; (const char **) argv);<br /> NSLog(@&quot;Test&quot;);<br />}
    



    Pour le coup, un "NSLog" derrière un "return" ça ne prouvera pas grand chose  :P


    La Honte !!!
    Une petite voix m'avait dit: "test le avant de poster" et je me suis dis pas besoin !!!
    Bon je mérite une fessée (attention je pourrais y prendre goût)...
    En même temps, on apprend aussi en se trompant.
    Mais la honte quand même !
    Effectivement il faut mettre le log avant le return et si là  ça ne marche pas c'est que t'as pas de console ou alors c'est que tu écris ton code sur papier ou autre...
  • AntilogAntilog Membre
    10:42 modifié #24
    D'un autre côté...

    Si tu écris ton code sur papier...
    Que tu l'exécute sur papier...
    Tu es sûr de ne pas voir les sorties consoles (sauf sur un bout de papier).

    OK, je sors tout de suite
    :brule:
  • NseaProtectorNseaProtector Membre
    10:42 modifié #25
    dans 1227602779:

    D'un autre côté...

    Si tu écris ton code sur papier...
    Que tu l'exécute sur papier...
    Tu es sûr de ne pas voir les sorties consoles (sauf sur un bout de papier).


    Et sur une ardoise magique ?
Connectez-vous ou Inscrivez-vous pour répondre.