Perte des Outlets dans Xcode

berfisberfis Membre
décembre 2014 modifié dans Xcode et Developer Tools #1

Bonjour,


 


Je volais de mes propres ailes depuis un certain temps, dans l'illusion d'une maitrise suffisante de Xcode qui, version après version, s'essouffle de plus en plus sur mon MacPro 2008, lorsque je me trouvai confronté à  l'un de ces problèmes idiots qui ne trouvent pas de solution évidente et deviennent vite chronophages...


 


J'ai une classe de document (dérivée de NSPersistentDocument) qui déclare un certain nombre d'outlets, que j'ai toujours pu raccorder à  mes éléments d'interface. Mais soudain " et bien que l'application continue à  compiler, charger et fonctionner – alors que j'essayais de connecter un nouvel outlet, IB me déclare tout de go que la classe "Document" ne possède pas d'outlet "blablabla"... en même temps, un clic-droit sur le File Owner (pourtant déclaré de la classe "Document") n'affiche plus que des triangles jaunes: plus aucun outlet visible.


 


Deux faits bizarres: si je déroule le menu pour déclarer la classe du FileOwner, "Document" n'apparaà®t pas dans la liste. Mais si je tape "Document" et que le clique sur la flèche grise à  la droite du champ, il ouvre le fichier correct, à  savoir "Document.h"...


 


J'ai essayé de retaper "Document", vérifié que la dérivation était correcte, fait un "clean" du project, redémarré Xcode, redémarré tout court... Rien à  faire, les triangles persistent.


 


Mac Pro 2008


Système 10.10.2


Xcode 6.1.1


 


Suis-je en face d'une corruption du xib? Effarante perspective...


 


A moins que j'aie oublié quelque chose? Si oui, merci de me le signaler !


Mots clés:

Réponses

  • AliGatorAliGator Membre, Modérateur
    Ta classe, elle s'appelle effectivement "Document" exactement ? Sans préfixe ? C'est un peu dangereux ça, y'a peut-être moyen qu'il y ait des collisions, qu'il confonde avec une autre classe qui s'appelle aussi "Document" (mais qui n'a pas de IBOutlet, elle) ?
  • CéroceCéroce Membre, Modérateur
    Quand tu es en mode Assistant, peux-tu choisir le source dans le volet de droite ? En automatique, Xcode se trompe souvent de classe.


  • Ta classe, elle s'appelle effectivement "Document" exactement ? Sans préfixe ? C'est un peu dangereux ça,




     


    C'est le nom donné par le template Core Data. J'abonde dans ton sens, d'autant que j'avais donné un préfixe lors de la création du projet, mais Xcode n'en a pas tenu compte...


     


    Ce devait être une embrouille dans le xib, ou un conflit dans Dropbox. Je suis allé sur mon MacBook, où le projet, pourtant synchronisé, fonctionnait parfaitement... J'ai retiré le dossier du projet de la Dropbox, attendu sa disparition sur le Mac Pro, puis remis le fichier en place. Une fois la synchronisation terminée, le projet ne présentait plus d'erreur...


     


    Il y a des jours comme ça. Je ne m'étonne plus de rien depuis que j'ai flanqué la carte graphique du Mac Pro dans un four à  200° pour la réparer " et constaté que ça marchait. 


     


    Vos remarques n'en demeurent pas moins judicieuses. Merci de ces réponses rapides et bonne année 2015 à  vous deux (et à  nos nombreux lecteurs)  :p   :p

  • C'est dangereux DropBox. J'ai eu des déboires avec des temps de latences différents entre fichiers lors de la synchronisation. Si on fait pas attention on se retrouve à  travailler avec un set de fichiers qui ne sont pas tous exactement synchronisés. Ou pire des modifications simultanées depuis plusieurs ordinateurs.


     


    Il faut largement préférer un repository Git (ou autre) pour partager du développement.


  • AliGatorAliGator Membre, Modérateur
    +100 pour un repo GIT.


  • Quand tu es en mode Assistant, peux-tu choisir le source dans le volet de droite ? En automatique, Xcode se trompe souvent de classe.




    Bonjour,


     


    La réponse/question de Céroce pose une analogie avec ma recherche.


     


    Tout jeune utilisateur de mac, je me trouve dans une situation étonnante :


    Dans Xcode, après avoir déposé des controles dans le main.storyboard, puis être passé en mode assistant, ctrl+cmd+glisser ne me laisse plus d'autre choix que de séléctionner UIView, là  ou précédement j'avais le type de contrôle que j'étais en train de glisser.


    En d'autre termes :


    Je C+C-glisse un label, et il m'est impossible (en mode assistant) d'avoir autre chose qu'un UIView ( pour un UILabel attendu) ; il en est ainsi pour tout les choix que j'ai tenté. (pas de Connection "action", pour un Button, non plus ...)


     


    Totalement novice en Xcode, je suis à  la recherche de deux réponses :


    1.) peut on réparer l'assistant ? ( ce symptome est apparu progressivement )


    2.) peut on procéder "a la mano" ... et dans quels fichiers doit on intervenir ( juste le .h n'est pas suffisant : ça compile, mais ça plante dans le simulateur iOS)


     


    Avec mes meilleurs voeux pour cette nouvelle année, merci par avance pour toute réponse !

  • CéroceCéroce Membre, Modérateur

    @Durandale: en haut de la zone d'édition du texte se trouve une barre qui indique l'emplacement du fichier. Cliquer dessus affiche un menu qui permet de changer le fichier actuellement édité.


    Ainsi, si Xcode se trompe dans le fichier à  afficher en mode assistant, tu peux choisir le bon fichier.


     


    ça peut être un autre problème, tel que la classe de l'objet sélectionné dans le Storyboard qui serait incorrecte.




  • @Durandale: en haut de la zone d'édition du texte se trouve une barre qui indique l'emplacement du fichier. Cliquer dessus affiche un menu qui permet de changer le fichier actuellement édité.


    Ainsi, si Xcode se trompe dans le fichier à  afficher en mode assistant, tu peux choisir le bon fichier.


     


    ça peut être un autre problème, tel que la classe de l'objet sélectionné dans le Storyboard qui serait incorrecte.




    Merci m'sieur ... une réelle erreur de débutant, je CCGlissais le "conteneur" (un clic de plus sur l'item, et "j'attrapais" le bon).


    Encore merci pour cette réponse rapide qui m'a permis de voir à  quel "couche" se faisait mon drag-n-drop.


    Tous mes voeux pour la nouvelle année.

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