43 votes

Xcode 4 : L'auto-complétion et le saut à la définition ne fonctionnent pas dans mon projet Xcode 3

Mon projet a été créé dans Xcode 3, je l'ouvre dans Xcode 4 et je remarque ce qui suit :

  • Sauter à la définition ne fonctionne plus avec mes propres symboles (Cependant, les symboles UI* et même TT* fonctionnent bien !)
  • Auto-complétion / "Code sense" (sens du code) est aussi mauvais que Xcode 3, c'est-à-dire qu'il suggère que tout
  • Les classes de mes projets ne s'affichent pas dans le navigateur de classes (les classes du système et de Three20 s'affichent).

Lors de la création d'un nuevo Le projet Xcode 4, cependant, ces fonctionnalités hacer semblent fonctionner. Malheureusement, la seule solution semble être de recréer le projet et de tout réimporter. Ce projet est trop volumineux !

Des choses que j'ai essayées :

  • Suppression des données dérivées dans l'organisateur
  • Nettoyage du projet
  • Installation des versions Gold Master et Final de Xcode 4

Mise à jour

  • Ce bug a pas a été résolu dans Xcode 4.0.1.

67voto

xhan Points 2876

Sur Fenêtre Menu :

  1. Organisateur
  2. Onglet Projets
  3. Votre projet
  4. Supprimer les données dérivées
  5. Redémarrer Xcode

Un petit conseil tiré de la réponse d'autres personnes :

Après l'étape.4, ne reconstruisez pas le projet mais redémarrez simplement Xcode.

16voto

yeahdixon Points 1713

Ce qui a fonctionné pour moi quand j'ai perdu le code super sympa de xcodes était :

Fenêtre(menu) -> Organisateur(menu) -> Projets(onglet)

puis

Cliquez sur "Supprimer les données dérivées" (c'est la même chose que d'aller dans le dossier et de le supprimer manuellement).

BUT !!!!! à cette étape, ne reconstruisez pas mais fermez xcode et réouvrez le projet. Ceci a fonctionné pour moi.

7voto

gstroup Points 614

J'ai eu le même problème dans la version finale de XCode 4 aujourd'hui, en travaillant avec mon ancien projet XCode 3. Le problème est lié à un index de symboles que XCode crée. Il devrait créer un nouvel index pour vous automatiquement, mais cela semble prendre beaucoup de temps dans XCode 4. Une solution possible est d'aller dans ~/Library/Developer/Xcode/DerivedData et de supprimer l'ancien index. Redémarrez XCode, et vous devriez voir l'indexation se faire. Pour 'Sauter à la définition', vous pouvez maintenir la touche commande enfoncée et passer la souris sur le nom d'une méthode ou d'une classe, et vous devriez voir des soulignements bleus, comme des hyperliens. Vous pouvez alors cliquer dessus pour accéder à la définition.

7voto

Rick Points 1603

EDIT : Il semble que si vous avez des chemins de recherche d'en-tête personnalisés pour supporter des cibles multiples avec du code partagé, l'indexation de XCode 4 sera interrompue et ensuite l'assistant et le codesense avec. J'ai soulevé ce problème comme #ID 9182099 avec Apple. Il y a également un problème : si vous avez des paramètres conflictuels entre les paramètres de construction globaux du projet et ceux spécifiques à la cible, l'indexation ne se fera pas correctement. Assurez-vous que vos paramètres de construction sont cohérents.

Je viens d'être confronté à ce problème dans le cadre d'un très grand projet commercial à cibles multiples. En outre, tous les fichiers xib n'affichent pas le contrôleur en vue assistante et aucune des vues assistantes des sous-classes, superclasses, frères et catégories ne fonctionne non plus.

Après de nombreuses recherches et expérimentations avec la suppression des index, etc., j'ai été obligé de créer un nouveau projet vide et de tout réimporter. Je sais que vous avez dit que votre projet est trop gros pour cela mais je ne pense pas qu'il y ait d'autre option disponible. Au final, il m'a fallu près d'une journée pour migrer complètement mon projet. Je suppose que l'on peut espérer une résolution dans une prochaine version, mais j'ai choisi de mordre dans la balle maintenant pour bénéficier de l'augmentation de la productivité grâce aux nouvelles fonctionnalités.

Pour y parvenir, j'ai créé un nouveau projet "vide", puis j'ai recréé manuellement les cibles dont j'avais besoin. J'ai ensuite supprimé les fichiers source et .plist des nouvelles cibles, ce qui m'a laissé un projet vide avec les trois cibles dont j'avais besoin.

J'ai ensuite sélectionné "ajouter des fichiers " au projet, un dossier à la fois, en liant les cibles selon les besoins. J'ai arrêté et construit chaque cible au fur et à mesure qu'elle était importée pour traiter les erreurs de compilation que la dernière version de clang me donnait.

Si vous disposez d'une hiérarchie de groupes complexe qui n'est pas mise en correspondance avec une structure de dossiers de système de fichiers, vous devrez soit recréer les groupes après l'importation, soit passer par le processus pénible consistant à déplacer tous vos fichiers dans des sous-dossiers et à redéfinir les références dans XCode.

Vous devrez également vérifier soigneusement tous les paramètres de construction personnalisés dans les cibles, ainsi que la liaison des bibliothèques que vous incluez. Assurez-vous également de supprimer tout fichier .plist importé en masse de la liaison avec la cible.

Désolé si ce n'est pas la réponse que vous espériez.

4voto

GreatWiz Points 66

http://three20.info/article/2011-03-10-Xcode4-Support a fonctionné pour moi. En particulier en effaçant le répertoire de construction de three20. Étrangement, cela a fonctionné même lorsque le dit build a été fait dans xcode4. CodeSense a commencé à fonctionner au moment où j'ai effacé le répertoire de construction de three20, je n'ai même pas eu à recompiler ou recharger le projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X