Debugguer ...

Quelqu'un peut m'expliquer pourquoi ces lignes ne fonctionnent pas :


<br />
(lldb) p [[self mapView] selectedAnnotations]<br />
error: no known method &#39;-selectedAnnotations&#39;; cast the message send to the method&#39;s return type<br />
error: 1 errors parsing expression<br />
(lldb) p [self mapView].selectedAnnotations<br />
error: property &#39;selectedAnnotations&#39; not found on object of type &#39;MKMapView *&#39;<br />
error: 1 errors parsing expression<br />




Je ne comprends rien à  ce debugger, je n'arrive pas à  voir les valeurs des objets, tout ce qu'on voit c'est c'est _internal et cie...

On est vraiment obliger d'utiliser cette console de m. (completion catastrophique...) pour afficher les objets ?



image/sad.png' class='bbc_emoticon' alt=':(' />

Réponses



  • J'ai du mal a comprendre "Quelqu'un peut m'expliquer pourquoi ces lignes ne fonctionnent pas ". Tu veux dire cette ligne ?


    [color=#666600][[[/color][color=#000088]self[/color][color=#000000] mapView[/color][color=#666600]][/color][color=#000000] selectedAnnotations[/color][color=#666600]][/color]
    




    Le debbuger te le dit. Tu appelles une methode de ta mapView (qui est de type MKMapView *) mais qu'il ne connait pas. Ce qui est bizarre c'est que selectedAnnotations est bien une property de MKMapView et qui te retourne un tableau d'annotations.
  • La notation avec le point n'est pas valide car il recherche alors un membre de la classe, et non une méthode. Il faut donc passer par la première notation.



    Dans la première notation, le problème c'est qu'il n'arrive pas à  déterminer le type retourné par la méthode. Il faut donc faire un cast. Mais si c'est un objet qui est retourné, il suffit d'utiliser po, pour print object, au lieu de p.
  • Bon j'ai loupé une étape image/smile.png' class='bbc_emoticon' alt=':)' />

    Thibault tu peux m'expliquer un peu ?



    Sinon j'avais pas vu la notation point en effet c'est pas bon.
  • Pour afficher un entier :
    p (int)[self var1]
    




    Pour un float :
    p (float)[self var2]
    




    Pour un objet :
    po [self object]
    
  • Ceci dit, personnellement j'ai remarqué que lldb était pas encore super top. J'ai l'impression qu'il est buggué. Des fois il arrive plus du tout à  me print quelque chose. Pas même self. Un comportement vraiment bizarre quoi.



    Du coup pour le moment je reste sur gdb...
  • Je confirme. Mais la syntaxe reste la même. (Ou peut être pas justement, je me suis basé sur la syntaxe gdb.)
  • Oups j'avais oublié ce post, désolé.



    Donc j'utiliserai po désormais, merci.



    Mais c'est moi ou j'ai l'impression de revenir 20 ans en arrière quand je debugguais de l'assembleur 68000 sur une VT220 ?
  • MalaMala Membre, Modérateur
    'groumpf' a écrit:


    Mais c'est moi ou j'ai l'impression de revenir 20 ans en arrière quand je debugguais de l'assembleur 68000 sur une VT220 ?


    Nan c'est Apple: "Simply Gorgeous!!!" image/wink.png' class='bbc_emoticon' alt=';)' />
Connectez-vous ou Inscrivez-vous pour répondre.