La saisie semi-automatique de Xcode 7.3 est tellement frustrante


96

Il y a une nouvelle saisie semi-automatique dans Xcode. Cela pourrait probablement être utile car il vérifie non seulement le début des noms, etc. Mais j'ai trouvé que très souvent, il ne trouve pas du tout un nom de classe ou un nom de const, etc. Je dois taper le nom entier par moi-même. Dans l'ensemble, j'ai trouvé que cela rend ma vie plus difficile et le codage prend plus de temps. Existe-t-il un moyen de revenir à l'ancienne méthode de travail?


Ceux qui ont utilisé la version 7.3 en version bêta se plaignent de cela depuis des semaines: stackoverflow.com/questions/35586056/…
mat

vous pouvez télécharger manuellement l'ancien xcode sur developer.apple.com/downloads , par exemple xcode 7.2.1: adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…
George

43
Je ne peux pas croire qu'ils ont sorti une version majeure avec quelque chose d'aussi important que l'auto-complétion cassée. C'est comme si personne chez Apple n'utilisait réellement Xcode pour le développement.
soleil

3
Cela affecte tellement ma productivité que je reviens à Xcode 7.2.1 afin de pouvoir revenir à la vitesse de développement normale. Je suis plus que d'habitude ennuyé par Apple avec celui-ci. Non seulement ils m'ont forcé à aller à El Capitan pour exécuter Xcode 7.3, mais quand j'y arrive, je trouve que la terre promise est loin d'être une réalité. Testent-ils ce truc du tout? Manque de respect typique pour «leurs» développeurs, comme toujours.
Quintin Willison

2
Xcode 7.3.1 est sorti hier, après mes tests, ce bogue existe toujours ... Mais Apple dit qu'ils le corrigent en 7.3.1.
Vincent Sit

Réponses:


18

Xcode 7.3.1

  1. Dans Xcode> Préférences> Edition de texte

    décocher Enable type-over completions

  2. redémarrer Xcode


14

Il semble que la désactivation de la case à cocher "Activer les complétions de frappe" dans XCode -> Préférences -> Edition de texte fait l'affaire. Au moins dans mon cas, la saisie semi-automatique est revenue à une sorte d'ancienne méthode, elle pouvait donc compléter automatiquement le nom de la classe que je devais saisir manuellement avant cela.


Je l'ai essayé, mais il ne complète toujours pas les noms de classe correctement.
Erik B

Je ne vois pas de différence. Encore faut-il terminer les noms personnalisés ... :(
matthewfx

Pour que cela fonctionne, vous devez activer l'indexation. Pour activer l'indexation, vous ne pouvez pas le faire à partir de Xcode. Vous devez exécuter la ligne suivante dans un shell. Puis redémarrez Xcode. % par défaut supprimer com.apple.dt.Xcode IDEIndexDisable voir stackoverflow.com/questions/7328041
...

5

Ce n'est en aucun cas une solution adéquate, MAIS cela m'a permis de (à peine) maintenir ma santé mentale ces derniers jours: après chaque build, vous devez supprimer votre dossier de données dérivées. Vous pouvez trouver ce dossier dans Xcode > Preferences > Locations > Derived Data. Il suffit de tout détruire et cela lancera une étape de réindexation qui devrait restaurer la fonctionnalité de saisie semi-automatique appropriée. Malheureusement, j'ai constaté qu'une fois que j'ai construit, le comportement de saisie semi-automatique revient à son état cassé.


4

ouvrez simplement le dossier de données dérivées de Xcode et supprimez le dossier

/Users/yourUserName/Library/Developer/Xcode/DerivedData

puis redémarrez Xcode, maintenant l'auto-complétion fonctionne comme un charme


Cela a fonctionné pour moi, je ne sais pas pourquoi il est noté négativement.
Mike M

1

J'ai l'impression que certaines «parties» de l'auto-complétion échouent tout simplement après un certain temps. J'utilise pour redémarrer le Mac pour le remettre en marche. Mais parfois, cela échoue à nouveau assez rapidement. Peut-être que la réponse de @Alex Bykov combinée à un redémarrage fera l'affaire.

Quoi qu'il en soit: l'auto-complétion de Xcode était toujours de la merde. AppCode était bien meilleur. Malheureusement pas encore avec Swift.


1

Xcode fermé, Xcode ouvert, laissez-le indexer, cela a fonctionné.


1
Malheureusement, c'est la seule option.
thedp

0

il ne trouve pas de nom de classe

Pour contourner le problème, vous pouvez essayer d'appuyer plusieurs fois sur Commande + Maj + K et Commande + B, cela fonctionne temporairement.


1
Est-ce que Cmd + Shfit + K (Clean), Cmd + Shfit + Opt + K (Clean Build Folder), a fermé Xcode, supprimé ~/Library/Developer/Xcode/DerivedData, redémarré OS X, et cela n'a toujours pas aidé. :-)
TaylanUB

1
Nous avons un assez gros projet qui prend 20 minutes à compiler à partir de zéro, donc nettoyer et reconstruire n'est pas une option pour nous ...
longbow

0

Xcode 7.3.1

Je vais partager une autre raison possible, que nous avons découvert après quelques jours. Nous avons plusieurs schémas, et dans l'un d'eux, l'en- tête de pont importait un fichier qui n'existait plus. Donc, il ne s'est pas cassé lors de la compilation et de l'exécution (l'en-tête appartient à un autre schéma) mais cela a provoqué la rupture de la saisie semi-automatique (impossible de trouver une classe objective-c).

J'espère que cela aiderait quelqu'un!


0

Après avoir essayé différentes méthodes:

  • Supprimer les données dérivées
  • Désactiver le module activé dans les paramètres de construction
  • Nettoyage complet
  • Relancer

Seul cela a fonctionné:

  • Trouvez n'importe quel code commenté (/ * abc * /) après @end dans vos fichiers et supprimez-le.

Crédit à Max_B: https://forums.developer.apple.com/thread/7439

Dans mon cas, d'autres projets se complétaient automatiquement. Si tous vos projets ne parviennent pas à prédire correctement le code, il peut s'agir d'un problème différent et les autres réponses peuvent fonctionner.


-1

J'ai rencontré ce problème en essayant de créer une application OS X et j'ai pu résoudre ce problème en m'assurant que la documentation Xcode 7.3 et la documentation OS X 10.11.4 ont bien été téléchargées. Faire cela a entièrement restauré ma fonctionnalité de saisie semi-automatique. Mes instructions complètes sont ci-dessous ainsi que dans ma réponse à une question similaire: https://stackoverflow.com/a/39420664/3444925

J'ai eu ce problème moi-même et après avoir parcouru toutes les autres questions et réponses similaires à ce sujet, je n'ai pas trouvé de solution. Cependant, j'ai finalement trouvé ce qui fonctionnait pour moi.

Allez à Xcode -> Preferences -> Components. Vous y trouverez probablement un écran qui ressemble à ce qui suit:

entrez la description de l'image ici

Cela montre que la documentation n'a pas été téléchargée et que, par conséquent, toute tentative de réindexation ou de reconstruction de l'application sans télécharger la documentation vous empêcherait de pouvoir utiliser la fonctionnalité de saisie semi-automatique.

Une fois que j'ai téléchargé la documentation Xcode 7.3 et la documentation OSX 10.11.4, cela me suffisait pour récupérer la fonctionnalité de saisie semi-automatique (j'essayais de créer une application OS X, alors n'hésitez pas à télécharger autant de documentation que nécessaire pour vous ).


Les liens vers des ressources externes sont encouragés, mais veuillez ajouter du contexte autour du lien afin que vos collègues utilisateurs aient une idée de ce que c'est et pourquoi il est là. Citez toujours la partie la plus pertinente d'un lien important, au cas où le site cible serait inaccessible ou serait définitivement hors ligne.
pableiros

Je viens d'ajouter ma réponse complète ici en tant que citation de bloc ici @pableiros
jkunzika

-1

Je n'ai pas rencontré cela jusqu'à ce que j'ai créé quelques nouveaux fichiers de classe. D'autres classes fonctionnaient bien, mais la saisie semi-automatique ne fonctionnerait PAS pour quoi que ce soit dans les nouveaux fichiers ...

CORRECTIF (pour moi) - J'ai dû ajouter ces fichiers à TOUTES mes cibles, y compris les cibles de test unitaire même si je ne les utilisais pas encore.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.