112 votes

Renommer une classe dans Xcode : Refactoriser... est grisé (désactivé). Pourquoi ?

Pourquoi Refactoriser... apparaît en grisé (désactivé) dans Xcode ?

Je voudrais renommer une classe.

182voto

Noah Witherspoon Points 35239

Sélectionnez le symbole de la classe dans son fichier d’en-tête - c'est-à-dire la mèche juste après `` . Puis les choses refactorisation doivent être activé.

26voto

Volker Voecking Points 2121

Si vous utilisez Objective-C++ (c'est-à-dire mélanger Objective-C avec du code C++) puis la refactorisation est désactivée dans xcode car il ne supporte pas de refactorisation de code C++.

7voto

klaaspieter Points 1932

Refactoriser peut également être désactivée si les fichiers affectés (probablement le fichier avec votre classe dedans) ne sont pas enregistrées.

6voto

Adam Points 17726

J'ai été en utilisant Xcode depuis maintenant 5 ans, et de refactoring n'a jamais fonctionné correctement (même xcode 4.6 a des bugs majeurs où il VA corrompre votre code source!).

La solution a toujours été (fonctionne toujours à 100%, même dans les cas où Apple code ne fonctionne pas)

  1. maj-commande-f pour trouver toutes les utilisations du fichier
  2. sélectionnez "remplacer" dans les paramètres de recherche
  3. "remplacer tout"
  4. effectuez les opérations suivantes pour la .h de fichier, et de le RÉPÉTER POUR LA .m FICHIER (si vous en avez un):
    1. cliquez-droit sur le fichier d'origine, et sélectionnez "afficher dans le finder"
    2. supprimer le fichier à partir de xcode (sélectionnez "supprimer les références uniquement" lorsque la question est posée)
  5. renommez le .h (et .m si vous en avez un) dans le Finder
  6. dans Xcode, sélectionnez "Produit -> (maintenez la touche Alt) -> Nettoyer le Dossier de création"
  7. quittez xcode (vous pouvez généralement s'en tirer avec ne pas faire cela - mais attention: il y a quelques autres bugs MAJEURS dans Xcode où il se bloque lui-même si vous ne le faites pas)
  8. ré-ouvrez xcode
  9. glisser/déposer de l' .h et .m en arrière dans Xcode
  10. attendez quelques secondes (certains de Xcode base de méthodes asynchrones - ce qui lui permet de corrompre votre projet)
  11. enfin, quand il semble être de ne rien faire (et que votre disque dur n'est pas faire de bruit en plus): cmd-b pour re-construire

J'ai un 100% de réussite avec cette méthode. J'ai juste essayé de refactoring avec Apple "Refactor -> Renommer" dans le dernier xcode et il a échoué de nouveau!

(cette fois avec le message d'erreur incorrect: "Impossible de déterminer la langue", l'un de ces messages d'erreur lorsque Apple a mis le mauvais texte à la place)

3voto

offset Points 126

Je vais à mon projet au finder, puis renommer les fichiers par infos.

Après cela, à xcode-> projet Navigator j’ai supprimer les fichiers.

À la fin, je clic droit sur la classe et Ajouter des fichiers à...et rajouter ces fichiers.

Cela a fonctionné pour moi.

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