2011-07-13 10 views
17

En XCode4, descubro que no puedo obtener la finalización del código para limitar fácilmente los nombres de métodos con múltiples parámetros donde la primera parte es común. Por ejemplo, considere los siguientes métodos de UITableViewDelegate:Finalización del código para nombres de métodos con múltiples parámetros en XCode4

- tableView:viewForHeaderInSection: 
- tableView:heightForHeaderInSection: 
- tableView:accessoryTypeForRowWithIndexPath: 
... 

La lista es interminable; hay bastantes métodos que comienzan tableView. Si escribo "tableView", la lista es larga y no se navega rápidamente. Si escribo "tableView:", la finalización del código se cierra tan pronto como escribo los dos puntos (:). Si escribo un error de ejecución como "tableViewview", la finalización también finaliza, presumiblemente porque ya no coincide literalmente con la primera parte del nombre del método.

¿Hay alguna forma de completarlo con el teclado en una lista de este tipo sin tener que recurrir a la función de deslizamiento o al azar de un número aleatorio de teclas para navegar por la lista larga? Me está costando creer que la finalización del código para los métodos Objetive-C multiparamétricos es muy limitada, pero ni la experimentación ni la documentación han demostrado ser esclarecedoras hasta el momento.

actualización de aclaración: encima me refiero a la realización de una declaración de método (por ejemplo, en un archivo .m), no de una llamada al método. Para las llamadas a métodos, XCode 4.x realiza la finalización para cada parte de parámetro de método de forma independiente; esto funciona genial El problema anterior solo se aplica a las declaraciones, generalmente al comenzar a escribir una nueva implementación de método en un archivo .m.

+0

¡Estoy enfrentando el mismo problema! – Vasu

Respuesta

6

Parece que el comportamiento que espera (desafortunadamente) no se implementa en Xcode. Sin embargo, he encontrado una solución parcial: finalización de código funciona cuando se especifica la primera parte completa del método de múltiples parámetros, es decir, si escribe esto (con espacio al final)

- tableView:(UITableView *)tableView 

y pulse la tecla ESCAPE luego aparecerá el diálogo de finalización de código y podrá seguir escribiendo el resto del nombre del método.

Probablemente se preguntan:

"Oh, muchacho, es lo que realmente tienen que escribir en este largo preámbulo sólo para obtener mi código de finalización?"

¡Fragmentos de código al rescate! Solo tiene que escribir el preámbulo una vez y convert it into snippet. Descubrí que es mejor configurarlo de la siguiente manera, no se olvide de agregar espacio al final de la parte del código, facilitará las cosas.

Ima

¿Cómo se debe usar lo que acaba de crear? En su archivo .m, comience a escribir tabl y Xcode le permitirá completar automáticamente el fragmento. Una vez que se coloca el preámbulo, presione ESC para revelar la lista de finalización automática.

Esta solución no es muy robusta, ya que debe crear un fragmento para cada método de varias partes que desee usar, pero ahorra tiempo y no hay muchos nombres de métodos de varias partes que compartan el mismo prefijo.

2

Oh, lo siento, no funciona de esa manera que mencioné con talones de protocolo como quería en su actualización. Yo uso Accesorio para eso, una aplicación en la tienda de aplicaciones Mac para implementar completamente la declaración de los métodos de delegado/protocolo que desea implementar. Espero que ayudes un poco.

Mensaje viejo:

utilizo Tab para esto. Ejemplo A menudo tengo: Desea uno de los muchos métodos de inicio en la finalización del código.

Luego no desea desplazarse hacia abajo o utilizar muchas teclas para llegar al método correcto.

Hit i> pulse el tabulador >init se ha completado.

Hit escape y luego w y luego de nuevo Tab para todos estos initWith métodos.

Incluso puede utilizar Tab ⇥/escape después de que el primer parámetro, cuando no es más que el método con un solo parámetro.

En su caso hit t> Pestaña > Escapar >un y volver , hay que recibió su tercer método. También puede saltar al argumento de finalización de código anterior con Shift + Tab .

Cuestiones relacionadas