Je n'arrive plus à  voir la valeur des NSString dans Xcode

al33eral33er Membre
Bonjour,

Depuis quelques versions de xcode, je n'arrive plus a voir la valeur des NSString (le summary) quand je debug avec xcode. J'ai du changé quelquechose non ?

Alexandre.

Réponses

  • tabliertablier Membre
    13:47 modifié #2
    Pour être sur de les voir, il faut mettre les "optimization level" à  "none" dans les settings du projet. Si non c'est le générateur de code qui réorganise le travail et tu ne sais plus quand le string sera initialisé réellement.
    Bon, mais il y a peut-être une autre raison que je ne connais pas.
  • laudemalaudema Membre
    13:47 modifié #3
    Bonjour,

    En cours de debuggage, dans le Menu Run -> item: Variables view -> sous-menu "Use Data Formatters" est il coché ?
  • al33eral33er Membre
    13:47 modifié #4
    Bonjour

    Oui, c'est coché.

    Voici un exemple dans le fichier joint.
  • laudemalaudema Membre
    13:47 modifié #5
    Et dans les informations sur la "target" de ton projet configuration Debug dans Build Options -> Debug Information Format as tu bien "DWARF" sélectionné dans le popup-menu ?
    Sinon tu peux aussi regarder comment sont réglées tes préférences Xcode concernant le déverminage

    Après je ne sais pas trop où te conseiller d'aller ..
  • AliGatorAliGator Membre, Modérateur
    décembre 2010 modifié #6
    Hello,

    J'avais le même problème depuis... que j'avais mis à  jour en SDK 4.2.1.
    La raison est indiquée dans la console quand tu débugues, au début de la session de debug :
    warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148a)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib (file not found).
    Ce qui veut dire qu'il ne trouve pas les symboles de debug du SDK 4.2.1, ce qui est normal puisqu'ils ... n'existent pas ! C'est pour cela qu'il ne trouve pas les Data Formatters & co. non plus.

    La solution : reprendre les symboles de la version 4.2 du SDK, qui sont les mêmes vu le peu de changement entre les 2 SDKs. En fait ils sont même absents à  la fois pour la "4.2.1 (8C148)" ET la "4.2.1 (8C148a)".
    Pour cela, il faut faire un lien symbolique du dossier Symbols/Developer de l'ancien SDK dans le nouveau, en tapant ceci dans le Terminal :
    cd &quot;/Developer/Platforms/iPhoneOS.platform/DeviceSupport&quot;<br />sudo ln -s &quot;../../4.2 (8C134)/Symbols/Developer/&quot; &quot;4.2.1 (8C148)/Symbols/Developer&quot;<br />sudo ln -s &quot;../../4.2 (8C134)/Symbols/Developer/&quot; &quot;4.2.1 (8C148a)/Symbols/Developer&quot;
    
    A exécuter avec les droits d'admin

    En tout cas pour moi ça a résolu le problème :)
  • al33eral33er Membre
    13:47 modifié #7
    Merci Ali. trop fort. Ca va être plus facile comme cela. 

    Tiens une autre question sur le SDK, à  chaque nouvelle version du SDK je perd les anciennes, il n'y a surement un moyen des les conserver, mais lequel ?

    Alexandre.
  • AliGatorAliGator Membre, Modérateur
    13:47 modifié #8
    Pour quoi faire ? Les derniers SDKs sont weak-linked et tu n'as plus le droit de publier des applications sur l'AppStore sans utiliser le dernier SDK (après tu peux mettre la IPHONEOS_DEPLOYMENT_TARGET à  ce que tu veux si tu veux que ton appli soit compatible avec des versions plus anciennes de iOS, mais ça n'empêche pas de devoir compiler avec le dernier SDK)

    Voir la doc Apple pour plus de détail
  • tabliertablier Membre
    13:47 modifié #9
    Dans un cas comme celui-ci, il serait bien de préciser au départ avec quel SDK tu travailles et pour quelle plateforme. Ces informations ne sont visibles que dans la copie d'écran.
    Je ne développe pas pour l'iphone et ma réponse ne pouvait être pertinente!
    Enfin, notre ami Aligator t'a donné la solution donc tout va bien.

    Bonne année, Happy new year, Buon anno, Frohes Fest und neue!
  • al33eral33er Membre
    décembre 2010 modifié #10
    Merci Ali,

    En fait, au démarrage du dev sur iphone, on avait à  disposition les différentes versions des SDKs lorsque l'on installait xcode pour iOS. On choisissait sur quelle version on voulait compilé. Il utilisait les versions es framework correspondant à  la version. Maintenant, il ne livre que la dernière version. Donc quand on a un application que l'on veut livrer dans une version de l'iOs qui n'est pas encore en production, on est obligé de compilé avec la version du SDK qui est correspond à  la version du firmware en production donc pas très pratique et donc sur une autre version de xcode. C'est dommage d'avoir à  installer des versions différentes de xcode je penses.

    J'ai donc essayé de copier les  versions précédentes du SDK et les mettre dans le dernier xcode mais je ne suis pas sur d'avoir fait toutes les bonnes manip. Comme je suis déjà  dans la nouvelle version avec mon iphone, je ne peux pas tester plus cela.


    Alexandre. 
Connectez-vous ou Inscrivez-vous pour répondre.