web-dev-qa-db-fra.com

Impossible de refactoriser mon fichier Swift dans Xcode 9

J'utilise XCode9 et j'essaie de faire refactoriser de mon fichier Swift mais chaque fois que j'obtiens une erreur ci-dessous:

Les plages du moteur de refactoring ne correspondaient pas aux plages initiales

 enter image description here

Je ne sais pas ce que c'est. Quelqu'un a-t-il des solutions à ce problème?

Merci d'avance!

17
CodeChanger

Cela n'a pas été résolu à partir de XCode 9.2. Redémarrage des correctifs pour moi.

10
akroy

Mise à jour Pour une raison quelconque, cela ne se produit plus pour moi. J'ai aussi remarqué que chaque fois que je ne laissais pas l'indexation se terminer avant d'essayer de commencer à faire un refactor ou de taper sur le refactor plusieurs fois, je vois toujours l'erreur, mais ce n'est plus permanent.

J'ai posé la question à un ingénieur de la WWDC 2018. Ce problème se posait pour moi dans un seul projet de mon espace de travail. D'autres projets dans le même espace de travail fonctionnent bien. Pour le moment, il n'y a pas de solution à ce problème. Si vous voulez aider Apple à résoudre ce problème, vous pouvez fermer votre Xcode et exécuter la commande suivante dans le terminal:

SOURCEKIT_SERVICE_LOG=3 /Applications/Xcode.app/Contents/MacOS/Xcode 2>&1 | tee /tmp/sk-log.txt

Essayez ensuite de reproduire le problème et envoyez-leur le fichier journal (/tmp/sk-log.txt) afin qu'ils puissent le réduire et, espérons-le, le corriger dans les futures versions de Xcode.

Avis Il s'agit d'un problème lié au projet. Il ne sera pas résolu avec les mises à jour de système d'exploitation, les mises à jour Xcode ou un nombre quelconque d'applications qui redémarrent, du moins celle que j'ai.

6
manman

Le projet de Xcode a été créé avec Xcode8 il y a longtemps. Pour une raison quelconque, je dois passer à Xcode9 (9.4.1 exactement). Ensuite, j'ai rencontré cette erreur uniquement sur l'ancien projet, pas sur le nouveau créé avec Xcode9.

Donc, je pense que cette erreur est liée à un problème de projet. J'ai donc décidé de comparer les paramètres entre l'ancien et le nouveau. Il y a quelques différences, et après plusieurs tentatives, en modifiant le problème de refactor résolu de Optimization Level for Debug.

  1. Dans l'éditeur de projet, sélectionnez votre Target, Build Settings
  2. Définir Optimization Level (Debug) = No optimization [-Onone]
  3. Supprimez le dossier DerivedData associé à votre projet dans /Users/YourMacUsername/Library/Developer/Xcode/DerivedData
  4. Projet propre shiftcommandk.
  5. Projet de construction commandb.

enter image description here

5
mnemonic23

Je mets à jour Xcode 10 et enfin, le refactoring fonctionne à nouveau après un an sans refactoring

1
pableiros

Je connaissais exactement le même problème. Il s'est avéré que ma configuration de génération était définie sur le mode Release. Le changer en Debug, le nettoyage du dossier de compilation et la recompilation ont résolu le problème pour moi.

0
user3001830