Perché il Refillatore ... non è selezionabile (disattivato) in Xcode?Rinomina una classe in Xcode: Refactor ... è disattivato (disabilitato). Perché?
Mi piacerebbe rinominare una classe.
Perché il Refillatore ... non è selezionabile (disattivato) in Xcode?Rinomina una classe in Xcode: Refactor ... è disattivato (disabilitato). Perché?
Mi piacerebbe rinominare una classe.
Selezionare il simbolo della classe nel suo file di intestazione, ovvero il bit subito dopo @interface
. Quindi il materiale di refactoring dovrebbe essere abilitato.
Se si utilizza Objective-C++ (cioè mix Objective-C con codice C++), il refactoring è disabilitato in xcode poiché non supporta il refactoring del codice C++.
Sì ed è davvero fastidioso !!! –
Molto triste, quasi 2 anni dopo e ancora non refactoring gli oggetti Objective-C. – christophercotton
@christophercotton Prova quasi 8 anni dopo e non è ancora implementato. – Alex
Il Refactor può anche essere disabilitato se i file interessati (molto probabilmente il file con la classe in esso contenuto) non vengono salvati.
Il salvataggio di un file xib in Interface Builder ha riattivato Refactoring per me, anche quando il riavvio di Xcode non ha aiutato, grazie! –
+1 per questo. Alcuni angoli di XCode hanno ancora delle aree ruvide e questo è uno di questi. A volte, se il salvataggio non abilita il refactoring, la ricostruzione funzionerà. – memmons
Per me ho capito che Refactor era disabilitato perché il progetto Xcode che avevo aperto faceva riferimento a un SDK di base che mancava. Modifica le impostazioni del progetto e nella scheda Crea imposta l'SDK di base su una che hai (come per me era iOS 4.2). Questo ha abilitato Refactor per me.
Inoltre, potrebbe capitare che il nome del file sia stato rinominato, fuori da xcode o ctrl-clic sul nome del file e quindi rinominarlo. xcode rifiuta di refactoring se il nome del file non corrisponde al nome della classe.
Aveva anche questo problema. Ho provato a cercare gli SDK mancanti, a salvare i file e a cercare il codice Objective-C++ come menzionato sopra, e tutto ciò che è servito per sistemare la mia macchina era il riavvio di XCode.
Sembra ancora un po 'bacato.
BTW, questo è stato per XCode 4.0.1
ho intenzione di mio progetto in Finder, quindi modificare il nome dei file da ottenere informazioni.
Successivamente, a xcode -> Project Navigator Elimina i file.
Alla fine, clicco sulla classe e Aggiungi file a ... e aggiungi di nuovo questi file.
Ha funzionato per me.
Utilizzo Xcode da 5 anni e il refactoring non ha mai funzionato correttamente (anche xcode 4.6 ha bug importanti in cui danneggia il codice sorgente!).
La soluzione è sempre stata (funziona ancora al 100%, anche nei casi in cui il codice di Apple non riesce)
Ho un tasso di successo del 100% con questo metodo. Ho appena provato a rifattorizzare con Apple "Refactor -> Rename" nell'ultimo xcode e non è riuscito - ancora!
(questa volta con l'errore non corretto: "Impossibile determinare la lingua di", uno di quei messaggi di errore in cui Apple ha messo il testo sbagliato nel posto)
+1. Questo è diventato il mio metodo preferito. – tambykojak
Sì, l'ho provato di recente (maggio 2014) e l'opzione "refactoring" del menu Xcode ufficiale è * ancora * interrotta, * ancora * corrompe il codice sorgente. Sono sorpreso che lo staff Apple non ne sia infastidito. – Adam
Vai a file di intestazione la classe e trovare la linea che sembra simile a questo:
@interface YourClassName
clic destro sul simbolo di classe (ad es YourClassName) e si dovrebbe essere in grado di selezionare Refactor -> Rinomina ...
ho appena provato questo e funziona in Xcode 5.
Refactoring funziona Se si modifica prima il nome del file nella navigazione di progetto.
Il file di intestazione della mia classe ha solo @interface, no @class. Ma selezionare il simbolo dopo @interface sembra funzionare. – Elliot
@class se per le dichiarazioni anticipate ... s –
Anche questo mi ha infastidito per parecchio tempo. Grazie! –