Cambiar el nombre o refactorizar archivos en Xcode

Respuestas:

170

La forma más segura de renombrar archivos es refactorizar el nombre de la clase usando el comando "Refactorizar" de Xcode . El uso de ese comando asegura que su código también se actualice en cualquier lugar que haga referencia al archivo o la clase (incluidos los NIB).

Haga clic con el botón derecho en el nombre de la clase en el .harchivo de interfaz ( ), elija Refactor->Renamey Xcode lo guiará a través del proceso, lo que le permitirá obtener una vista previa de los cambios antes de comprometerse con ellos.

Más detalles:

Haga clic derecho en el nombre de la clase (después @interface) y elija Refactor-> Renombrar. Por ejemplo, haga clic derecho ViewControlleren este código:

@interface ViewController : UIViewController

ingrese la descripción de la imagen aquí

Ingrese el nuevo nombre de la clase:

ingrese la descripción de la imagen aquí

Xcode te permitirá revisar los cambios antes de comprometerte.

ingrese la descripción de la imagen aquí

También puede resaltar el nombre de la clase y usar el Edit->Refactormenú de Xcode , o incluso asignarlo a un atajo de teclado si lo desea.

Si realmente desea cambiar el nombre del archivo sin afectar ningún código, haga clic en el nombre en el panel del navegador (panel izquierdo), espere un segundo y luego haga clic nuevamente. El nombre se resaltará y podrá escribir uno nuevo. También puede eliminar del navegador, cambiar el nombre del archivo en el Finder y volver a agregarlo a su proyecto.

rey nevan
fuente
1
Este enfoque es el mejor, ya que cambiará el nombre de las instancias de clase contenidas en otros archivos o archivos XIB.
Kendall Helmstetter Gelner
Esto no parece funcionar desde que actualicé a 4.3. En el archivo de encabezado (.h), XCode se queja de que el archivo no se agrega a un objetivo, lo que no debería ser, ya que es un archivo de encabezado. Si lo intenta en el archivo .m, se queja de que no es un símbolo (clase, función, etc.)
Michael
@Michael ¿Lo has probado en un proyecto de prueba? No he instalado 4.3, pero parece estar funcionando bien en 4.2 (solo lo probé).
nevan king
¿Alguien sabe dónde puedo encontrar código fuente relacionado, si es de código abierto? Creo que usaron herramientas clang para implementar la función de refactorización, hay algunas buenas interfaces para esta funcionalidad, pero no he encontrado el código fuente.
BergP
Desafortunadamente, esto hace que mi Xcode se bloquee. Estoy ejecutando Yosemite Beta, así que esa podría ser la razón. Ojalá.
CGTheLegend
51

Funciona para Xcode 4.2.1: seleccione el archivo en el navegador de proyectos (panel izquierdo predeterminado) y presione [tabulador]

Dave
fuente
Gracias. Refactor-> Rename no funcionaba con archivos C ++. Esto funcionó.
BlueVoid
4
Creo que esta respuesta merece más ser aceptada que la actual. +1
Morgan Wilde
También funciona con XCode 11
Kesha Antonov
3

De forma predeterminada, Xcode cambiará el nombre de un archivo cuando lo cambie en el navegador de archivos (vista de esquema de la izquierda) o cuando use el inspector.

bbum
fuente
Hola, me gustaría cambiar el nombre de un protocolo (SideToolBarDelegate.h) con ToolBarDelegate.h, pero xcode me dice: "SideToolBarDelegate.h se importa o se incluye en un archivo que es Objective-C ++, no Objective-C o C:" . ¿Cómo puedo cambiarle el nombre, por favor? Gracias
samir
simplemente lo reemplaza en un archivo (SideToolBarDelegate.h) pero quiero reemplazar este nombre en todo el proyecto, como la función de refactorización.
samir
shift-cmd-F, abre las pequeñas opciones para "buscar y reemplazar". Buscar y reemplazar ...
bbum
No olvide cambiar el nombre de las cosas con nombres relacionados: Body, BodiesViewController, interactingBodies - Un estricto "buscar y reemplazar" no detectaría el segundo o el tercero.
willc2
2

Unidireccional : Seleccione el archivo al que desea cambiar el nombre y luego presione Tab. Principalmente uso esto, sin embargo, Xcode a veces no puede cambiarle el nombre. Entonces, ¿qué sería entonces?

Otra forma : seleccione el archivo. Abra el Área de inspectores (en la esquina superior derecha). Y luego abre File Inspector . Allí encontrará el campo de nombre, donde puede editar el nombre del archivo. (Ver captura de pantalla).

ingrese la descripción de la imagen aquí

Kareem Jeiroudi
fuente
1

Xcode 11.6, intentar cambiar el nombre de "foo.cpp" a "bar.cpp" no funciona con los métodos anteriores. la opción REFACTOR está atenuada. En su lugar, haga lo siguiente:

  • En el Navegador de proyectos, busque el archivo para cambiar el nombre, es decir: foo.cpp
  • Haga clic derecho (2 dedos) en foo.cpp
  • Seleccione "Mostrar en el inspector de archivos"

En el lado derecho de la pantalla, aparece el inspector de archivos.

  • En el campo Nombre, escriba su nuevo nombre de archivo, presione ENTER
user3696153
fuente
0

Si cambió el nombre de un archivo manualmente y utilizó Buscar y reemplazar para cambiar el nombre de la clase, asegúrese de que el archivo se agregue a Compilar fuentes en las Fases de compilación de su objetivo, ya que probablemente se eliminará.

jclv
fuente
0

Elija Refactor-> Renombrar la respuesta de nevan king también funciona bien en Xcode Versión 7.0 beta (7A120f)

Carlos Chang
fuente
Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación; siempre puede comentar sus propias publicaciones y, una vez que tenga suficiente reputación , podrá comentar cualquier publicación .
Mayank Jain
Porque no tengo 50 de reputación. Eso es lo que publico una respuesta a la respuesta.
Carlos Chang