Auto-implementar métodos de protocolo Swift en Xcode


Acabo de empezar con el lenguaje swift y viniendo de Java se ve muy bien hasta ahora. Pero realmente me estoy perdiendo algo:

Eclipse tenía esta gran característica que cuando agregué "implementa XYZ" me proporcionó una función para implementar automáticamente los stubs de función necesarios. Esto es un gran ahorro de tiempo.

Xcode no parece tener esta característica, o me estoy perdiendo algo?

Encontré el complemento accessorize, pero esto parece que solo funciona con Objective C..

Es ¿hay una solución?

PS. Estoy usando Xcode 6.1.1

Author: pkamb, 2014-12-06

3 answers

Xcode 9

Xcode 9 ahora admite el cumplimiento de métodos de protocolo a través de un "fix it". Se llenará automáticamente los métodos que faltan para usted. Esto fue anunciado en WWDC 2017.

introduzca la descripción de la imagen aquí

Actualización: Esto no parece funcionar para protocolos definidos por usted, desafortunadamente.

 16
Author: Guy Daher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-07 13:33:47

NB: Esta respuesta es verdadera para Xcode antes de la versión 9; en la versión 9 Apple agregó la capacidad de corregir automáticamente los métodos de protocolo faltantes; vea La respuesta de Guy Daher.

Acabo de crear un proyecto iOS, y me dirigí a mi UIViewController.archivo swift. Allí declaré que implementó UITableViewDelegate:

class ViewController: UIViewController, UITableViewDelegate {

Ahora cuando entro en el cuerpo de la clase, y empiezo a escribir " tab...", veo el apropiado autocompletaciones:

Autocompletaciones de Xcode

Presionando Enter luego inserta el stub de la función, con el cursor listo para codificar.

Así es como Xcode autocompleta protocolos (o métodos de clase heredados). Si quieres hacer todos a la vez, no creo que sea posible, tristemente. Pero siempre puede Cmd - haga clic o Opción-Cmd - haga clic (que utiliza una ventana de editor secundario) en el nombre del protocolo para saltar a su definición, que es básicamente una lista de todos sus métodos que puede copiar y pegar en su código. Tendrías que ordenar un poco a partir de ahí, pero no mucho.

 22
Author: Matt Gibson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-08 10:04:20

Xcode 9, se encarga de la implementación de los métodos obligatorios de Swift Datasource & Delegates.

Mira estas instantáneas, con un ejemplo de UICollectionViewDataSource:

Indicando advertencia para implementar métodos de protocolo:

introduzca la descripción de la imagen aquí

Al hacer clic en el botón' Fix', se han añadido todos los métodos obligatorios:

introduzca la descripción de la imagen aquí

Alternativa:
puede utilizar un teclado corto clave: Ctrl + Opción + Comando + F para solucionar todos los problemas a la vez.

introduzca la descripción de la imagen aquí

 2
Author: Krunal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-14 08:36:06