web-dev-qa-db-fra.com

La détection de code Xcode 4 ne fonctionne pas

J'exécute un "ancien" projet Xcode 3 dans Xcode 4 et le sens du code ne fonctionne pas pour mes propres classes. J'ai essayé de suivre:

  • Nettoyer/reconstruire
  • Supprimer les données dérivées
  • Installation de la documentation 4.3
  • Redémarrer

Sans aucune chance.

Parfois, le sens du code fonctionne, mais la plupart du temps, je reçois juste "No Completions".

77
Okku

Essaye ça:

Ouvrez l'Organiseur puis l'onglet Projet.

Effacez les "données dérivées". Xcode devrait alors réindexer votre projet et le sens du code devrait fonctionner. Au moins a fonctionné pour moi.

128
Saikat

Je sais que c'est en retard, mais pour référence: http://sealedabstract.com/code/when-xcode-4s-code-completion-autocomplete-breaks/

  • Fermez le projet, en laissant XCode toujours en cours d'exécution.

  • Ouvrez la fenêtre Organiseur de XCode, accédez à l'onglet Projets, sélectionnez le projet approprié et cliquez sur le bouton Supprimer à côté de "Données dérivées".

  • Quittez XCode.

  • Accédez au fichier .xcodeproject de votre projet dans le Finder. Faites un clic droit, choisissez "Afficher le contenu du package".

  • Laissez le fichier project.pbxproj, mais supprimez le fichier project.xcworkspace, tous les fichiers .pbxuser et l'intégralité du dossier userdata.

  • Ouvrez le projet dans XCode. Vous verrez XCode rouler haut sur l'utilisation du processeur pendant environ 10 à 60 secondes, selon la taille de votre projet. La fenêtre d'activité indiquera "Indexation"

  • Lorsque votre pic de CPU reviendra sur terre, l'achèvement du code fonctionnera à nouveau.

Il y a beaucoup de suppressions en cours, alors soyez prudent, mais cela a vraiment fonctionné pour moi.

108
Chris Burt-Brown

J'ai fait cela, et cela a fonctionné plusieurs fois pour moi (après avoir essayé tout ce qui précède précédemment).

Edit: Maintenant, je viens de frapper l'espace, le retour arrière (la version mac) et la reconstruction ... fonctionne bien. Ensuite, n'oubliez pas de faire défiler (parfois les couleurs n'apparaissent que lorsque vous faites défiler quelque part)

  1. Recherchez votre fichier de préfixe: "ProjectName_prefix.pch".
  2. Commentez une ligne. (essentiellement changer)
  3. Construisez votre projet, peu importe qu'il échoue ou non.
  4. Décommentez-le.
  5. Construisez à nouveau.

Je parie que seule l'étape 2 (modifier le préfixe) est ce qui le fait, mais cela vous ramène essentiellement à la course. Soudain, tout se recolore comme par magie et complète les fonctions.

Bonne chance si cela ne le résout pas, essayez peut-être de le faire avec vos fichiers pch de dépendance (trois20 ou api FB)

26
Stephen J

Vous pouvez résoudre ce problème en modifiant les paramètres de construction comme celui-ci, en-têtes de préfixe de précompilation: NON

4
gowrikarthick

Pour info, si un fichier n'a pas de sens de code mais le reste de votre projet, vérifiez qu'il est ajouté à une cible. Une fois que j'ai fait cela, j'ai retrouvé le sens du code dans ce fichier.

3
zekel

Cela fait longtemps, mais la réponse est simplement de déplacer le code dans un nouveau dossier et le sens du code devrait fonctionner maintenant.

Cela s'est produit lorsque j'ai ajouté une nouvelle classe Objective-C et que le sens du code ne fonctionne pas uniquement sur les fichiers .m et .h nouvellement ajoutés (sur la dernière mise à jour de XCode 4 lors de cette publication).

2
Bahamut

Fermez toutes les fenêtres xcode

Supprimez tous vos projets de xcode> fenêtre> organiseur et redémarrez votre projet. Il détectera et indexera correctement votre projet.

2
Saad

J'ai écrit à ce sujet en détail ici .

Fondamentalement, ma solution était celle de la localisation. J'ai mis à niveau de xcode 3.2.5 vers xcode 4, puis je me suis débrouillé avec le constructeur d'interface intégré et j'ai accidentellement activé la localisation d'un fichier XIB qui a placé mes fichiers source dans le répertoire en.lproj. Après les avoir replacés dans le dossier Classes, cela a parfaitement fonctionné.

1
zakishaheen

J'ouvre un deuxième projet en arrière-plan chaque fois que la détection de code de mon Xcode cesse de fonctionner (cela fonctionne généralement la première fois que j'ouvre le projet, mais après un certain temps, la détection de code ne fonctionne plus). Donc, ce que je fais, c'est d'ouvrir un deuxième projet dans Xcode. Xcode commencera à indexer le deuxième projet et comme par magie, le sens du code pour mon projet principal est de retour.

Exécuter Xcode 4.3.1 sur Lion

J'espère que cela aide quelqu'un.

0
newDeveloper

Pour moi, cela s'est produit simplement parce que le fichier n'avait pas d'appartenance cible. Si les premières réponses n'ont pas fonctionné pour vous, accédez à votre fichier .m (probablement c'est ce fichier avec lequel vous rencontrez des problèmes), ouvrez la vue tilitaires (Édition -> Utilitaires -> Afficher File Inspector) et sous "Target Membership", cochez la cible à laquelle vous souhaitez que ce fichier appartienne.

0
Andrei

De ce commentaire ici J'ai réussi à déboguer le problème de ma part, il semblait être un mauvais indicateur -w que le préprocesseur clang ne reconnaissait pas correctement. Fondamentalement, la course

defaults write com.Apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

dans Terminal augmente la verbosité de l'indexeur et devrait vous aider à rechercher les problèmes. Ouvrez Console.app et recherchez les messages de Xcode, la chaîne de recherche IDEIndexingClangInvocation m'a aidé à les trouver.

0
damian