Xcode solo puede refactorizar código C y Objective-C. ¿Cómo cambiar el nombre de la clase rápida en Xcode 6?


103

He creado un nuevo proyecto de aplicación de vista única en la versión beta de Xcode 6. Quiero cambiar el nombre de la clase rápida de ViewController.swifta otro nombre. Pero cuando selecciono Refactor -> Cambiar nombre, da error Xcode can only refactor C and Objective-C code.

ingrese la descripción de la imagen aquí

¿Alguna idea de cómo cambiar el nombre de la clase Swift en Xcode 6?

ACTUALIZAR:

Finalmente, Xcode 9 es compatible con la refactorización para Swift. Apple tardó 3 años en agregar esta característica básica. Refactorización


9
Actualmente no hay ninguno. Presentar un error .
jtbandes

19
Más de un año después de que se preguntó esto, ¡la única respuesta sigue siendo una búsqueda y reemplazo manual! Increíblemente al revés de Apple, esta es una característica básica y esencial para un IDE
HughHughTeotl

1
AppCode puede realizar esta refactorización. Será un proceso de dos pasos para su clase definida en un .swiftarchivo. 1. Seleccione el nombre de la clase y realice Refactorización> Cambiar nombre . 2. Seleccione el .swiftarchivo y ejecute Refactor> Renombrar .
Daniel Zhang

5
Incluso después de dos años !!! ¿¿¿NO SE HA IMPLEMENTADO???
Milad Faridnia

Es realmente agradable de alguna manera trae recuerdos de viejos tiempos mientras copia y pega 100 elementos en C
LegendLength

Respuestas:


25

Puede cambiar el nombre de una clase en File Inspector en el lado derecho de Xcode6.

  • abre tu clase
  • vaya a Inspector de archivos> sección Identificar y escribir
  • cambiar el nombre de la clase existente en el campo "nombre".

¡Eso es todo! Anteriormente, renombraba manualmente el nombre de la clase en el archivo de clase.


11
Gracias por la respuesta, pero solo cambia el nombre de la clase solo en la estructura del archivo. Todavía tengo que cambiar todas las instancias de mi nombre de clase en todas partes del código. Mientras que usar Refactor-> Rename ... solía cambiar el nombre en la estructura del archivo y también en el código.
Khawar

¡No hay problema! Pensé que era una especie de solución hasta que Apple haga algo con este problema. También puede utilizar la función Buscar y reemplazar hasta ese día. En cualquier caso, construido en Refactor-> Rename casi hace las mismas acciones.
Nuevo:

1
@Newone No hace lo mismo. Por ejemplo, Buscar y reemplazar buscará dentro de cadenas, y Refactor-> Renombrar no debería hacer eso.
Martin Epsz

15

He estado usando Buscar> Buscar y reemplazar en Project , no es perfecto pero funciona.


12

Yo uso de esta manera:

  • Puede colocar el cursor en la variable que desea renombrar
  • Seleccionar editor - Editar todo en Scope (^ ⌘E)
  • Cambie el nombre de la variable y automáticamente se editarán todas las ocurrencias de variables.

Esto ayuda. ¡Me sorprende que me haya perdido esto durante tanto tiempo! :]
hdsenevi

1
Esto solo funciona dentro del alcance, es decir, no en los archivos IIRC.
Steve Moser

10

De este tutorial.

Divide tu código Swift de iOS8

Lo primero es lo primero, cambiemos el nombre de nuestro controlador de vista para que sea más significativo. Abra su archivo ViewController.swift y reemplace todas las referencias a 'ViewController' con nuestro nuevo nombre, 'SearchResultsViewController'. Cambie el nombre del archivo también a SearchResultsViewController.swift.

Si intenta ejecutar la aplicación desde aquí, se bloqueará. ¡Esto se debe a que nuestro archivo de guión gráfico no se ha actualizado para conocer la nueva clase! Así que abra Main.storyboard, seleccione su objeto 'View Controller' en la escena (el navegador del lado izquierdo) y luego seleccione el Inspector de identidad (lado derecho, tercer botón).

Desde aquí, cambiemos la clase de 'ViewController' a 'SearchResultsViewController'. Ahora deberíamos estar de nuevo en camino. Compruebe que el proyecto aún funciona y continuemos.


gracias por responder. Ya he experimentado este método. Pero no parece ser una buena forma. Si estoy usando objetos ViewController.swift en 10 clases, tengo que renombrarlos manualmente en todas las clases. Mucho doloroso y pérdida de tiempo :(
Khawar

@ Khawar- Sí, tienes razón, pero puede que no haya otra opción ahora y también Swift está en beta. no se preocupe por eso .. espero que Apple encuentre otro camino más fácil que (¿objetivo c ???) :)
iPatel

1
Estoy en la versión 7.2 (7C68) y la refactorización de cambio de nombre todavía no es posible
Barbara R

En 7.3 tampoco es posible.
ManiaChamp


2

Xcode 9

Xcode 9 ahora admite el cambio de nombre en Swift. Esto fue anunciado en WWDC 2017.

ingrese la descripción de la imagen aquí


Gracias, gracias Apple, pero el cambio de nombre sigue sin funcionar. Ahora está bloqueando el Xcode.
kisileno

Verdadero ... A partir de la versión 9.0 beta, el cambio de nombre hace que Xcode se bloquee. Pero esto es lo que se supone que funcionará en el futuro , cuando sea que sea :)
Guy Daher
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.