web-dev-qa-db-fra.com

Xcode 8.2 La complétion de code ne fonctionne pas

Pour une raison quelconque, dans Xcode 8.2, l'achèvement de mon code a cessé de fonctionner. J'ai nettoyé mon produit, redémarré Xcode, redémarré mon ordinateur et supprimé les données dérivées, et toujours pas de chance. Je l'ai soumis à Apple). Quelqu'un at-il déjà rencontré ce problème et a-t-il pu le résoudre?

56
ethanfox27

La complétion de code a également cessé de fonctionner pour moi dans Xcode 8.2.1, et aucune quantité de nettoyage, de données dérivées ou de redémarrage n'a été corrigée. Après un moment, j'ai réalisé que l'achèvement du code était seulement brisé dans la portée de l'extension sur laquelle je travaillais. Si vous le saisissiez manuellement, le code serait correctement mis en surbrillance et la compilation serait bien. Il ne s'agissait donc pas d'un problème de source qui jetterait l'analyseur en charge de l'achèvement du code.

Voici le contexte spécifique dans lequel cela se passe, dans cet exemple très simple:

struct SomeStruct {

    static let foobar1 = {
        return NSBezierPath()
    }()

}

extension SomeStruct {

    static let foobar2 = {
        return NSBezierPath()
    }()

}

L’achèvement du code fonctionne bien dans le bloc d’application de foobar1, mais pas pour foobar2. C'est la présence d'un static let dans une extension qui semble le déclencher. Le problème apparaît à la fois pour struct et pour la classe.

Cela ressemble à un bug avec Xcode, donc la seule solution pour moi était de déplacer foobar2 dans la définition principale de SomeStruct.

15
charles

Mise à jour: Selon la solution @Dareon ci-dessous, fonctionne également pour Xcode Version 8.3 (8E162) et 8.3.2 (8E2002). Merci, @ Dareon pour la confirmation. :)

Je faisais face au même problème et la suite a fonctionné pour moi.

J'utilise Xcode version 8.2.1 (8C1002).

  1. Allez à Xcode> Préférences> Édition de texte
  2. Sous Code de complétion - Décochez la case "Suggérer les complétions lors de la frappe".
  3. Quittez Xcode puis relancez Xcode.
  4. Allez à Xcode> Préférences> Édition de texte à nouveau
  5. Quittez Xcode puis relancez Xcode.
  6. Maintenant, allez à Complétion du code et check 'Suggérez les complétions lors de la frappe'.
  7. Essayez de taper la fonction de bibliothèque ou enum et profitez-en!

Au moins, cela a fonctionné pour moi.

153
Chinmay

Juste redémarrer Xcode a fonctionné pour moi.

5
catanore

Il suffit de nettoyer et de créer votre application une fois sur Generic iOS Device, cela pourrait être dû à un problème de compilation, qui désactive l’intelligence, je vois ce bogue depuis Xcode 8.2.1.

2
Rein rPavi

Ce qui a fonctionné pour moi a été la suppression des données dérivées:

Préférences Xcode -> Emplacements -> Le symbole de la flèche vous amène à "Données dérivées" -> supprimer le dossier

2
user1105951

J'ai eu des problèmes majeurs avec cela aussi. Pour moi, l'achèvement du code et le formatage de mon fichier source de travail actuel sont perdus chaque fois que je compile. Si je retourne à un autre onglet et que je reviens, après une seconde ou deux, il recommence à fonctionner. Parfois, même cela ne fonctionne pas et je dois rester dans le même onglet, ouvrir un fichier différent, puis revenir en arrière.

Même ces méthodes échouent si je laisse Xcode ouvert et laisse l'ordinateur en veille pendant quelques heures avant de revenir. Lorsque cela se produit, je dois quitter Xcode, parfois forcer à le quitter, puis, une fois de retour, effectuer les étapes ci-dessus. Mais je dois le perdre après chaque compilation ou chaque compilation et exécution que je fais. Je n'ai pas encore essayé la version 8.3 bêta.

1
bdepaz

J'ai eu le même problème où "l'indexation" ne fonctionnait pas. Comme j'utilisais un pod et des bibliothèques statiques. Ce que je viens de reconstruire les bibliothèques statiques séparément.

J'espère que cela t'aides.

0
Karen Lusinyan

Si vous avez de gros littéraux statiques, essayez de les commenter. Ceux-ci peuvent parfois trébucher le compilateur.

0
Eden