Pourquoi Refactor ... est-il grisé (désactivé) dans Xcode?
Je voudrais renommer une classe.
iphone
xcode
refactoring
Elliot
la source
la source
Si vous utilisez Objective-C ++ (c'est-à-dire mélanger Objective-C avec du code C ++), le refactoring est désactivé dans xcode car il ne prend pas en charge le refactoring du code C ++.
la source
Refactor peut également être désactivé si les fichiers concernés (probablement le fichier contenant votre classe) ne sont pas enregistrés.
la source
J'utilise Xcode depuis maintenant 5 ans et le refactoring n'a jamais fonctionné correctement (même xcode 4.6 a des bogues majeurs où il corrompra votre code source!).
La solution de contournement a toujours été (fonctionne toujours à 100%, même dans les cas où le code d'Apple échoue)
J'ai un taux de réussite de 100% avec cette méthode. J'ai juste essayé de refactoriser avec "Refactor -> Rename" d'Apple dans le dernier xcode et cela a échoué - encore une fois!
(cette fois avec l'erreur incorrecte: "Impossible de déterminer la langue de", l'un de ces messages d'erreur où Apple a mis le mauvais texte en place)
la source
Je vais à mon projet au finder, puis change le nom des fichiers en obtenant des informations .
Après cela, à xcode -> Project Navigator, je supprime les fichiers.
À la fin, je clique à droite sur la classe et Ajouter des fichiers à ... , et ajoute à nouveau ces fichiers.
Cela a fonctionné pour moi.
la source
Pour moi, j'ai réalisé que Refactor était désactivé parce que le projet Xcode que j'avais ouvert faisait référence à un SDK de base qui manquait. Modifiez les paramètres du projet et dans l'onglet Construire, définissez le SDK de base sur celui que vous avez (comme pour moi, c'était iOS 4.2). Cela a activé Refactor pour moi.
la source
En outre, il se peut que vous ayez renommé le nom de fichier de la classe, soit en dehors de xcode, soit en cliquant sur le nom de fichier en maintenant la touche Ctrl enfoncée, puis en le renommant. xcode refuse de refactoriser si le nom du fichier ne correspond pas au nom de la classe.
la source
Accédez au fichier d'en-tête de votre classe et trouvez la ligne qui ressemble à ceci:
Cliquez avec le bouton droit sur le symbole de la classe (par exemple YourClassName) et vous devriez pouvoir sélectionner Refactor -> Renommer ...
Je viens d'essayer et cela fonctionne dans Xcode 5.
la source
Eu ce problème aussi. J'ai essayé de trouver des SDK manquants, d'enregistrer des fichiers et de rechercher du code Objective-C ++ comme mentionné ci-dessus, et tout ce qu'il fallait pour réparer ma machine était de redémarrer XCode.
Semble encore un peu bogué.
BTW, c'était pour XCode 4.0.1
la source
La refactorisation fonctionne Si vous modifiez d'abord le nom du fichier dans le navigateur de projet.
la source