ultima tutorial programación objective logo lenguaje ejemplos caracteristicas objective-c xcode ide interface protocols

objective c - tutorial - Xcode: ¿es posible crear automáticamente stubs para los métodos requeridos por la interfaz de protocolo?



objective c vs swift (10)

Procedente de un fondo de Eclipse / Java, una de mis características favoritas es la capacidad de anular rápidamente todos los métodos requeridos por una interfaz. En Eclipse, puedo elegir ''Anular / implementar'' desde el menú de origen para generar métodos stub para cualquier método de la interfaz.

Me gustaría hacer lo mismo en Objective-C. Por ejemplo, si declaro una clase que implementa el protocolo ''NSCoding'', me gustaría que Xcode genere automáticamente los métodos necesarios para implementar este protocolo. Es frustrante tener que buscar y luego copiar / pegar las firmas de los métodos necesarios en cada protocolo que estoy tratando de implementar.

He intentado por un tiempo averiguar si esto es posible, pero aún no he encontrado nada prometedor. ¿Es esto posible en XCode?


Accessorizer escribirá los métodos de codificación y decodificación para los ivars que se le pasen (protocolo NSCoding y para archivar NSDocument). También generará constantes de cadena ya sea estáticas o #define con un prefijo personalizado; copyWithZone :; y otras cosas si lo necesita, todo desde un acceso directo simple a través de Servicios o desde la barra de herramientas. Accesorio de archivo con clave


Basado en el script de ruby ​​"Create @property, @synthesize & dealloc from Variable Declaration" de AllanCraig, hice uno para generar stubs de implementación desde los de interfaz: http://pastebin.com/4T2LTBh6

¿Cómo utilizar?

  • Configure la secuencia de comandos en su XCode (Script de Shell) y asigne un acceso directo (ej. CMD + 5).
  • Seleccione las líneas de su archivo de interfaz en la que desea generar la implementación y presione la tecla de acceso directo.
  • Tu .m contendrá tus métodos seleccionados.

Como el enlace dado de la respuesta aceptada ya no funciona (y se lo redirecciona a un anuncio), here''s otra buena explicación sobre cómo usar el accesorio para crear stubs de métodos de protocolo.



En mi caso, el estilo de abajo me ayuda mucho, en cierto sentido resolvió mi problema.

Supongamos que tiene la siguiente declaración de método:

+(DBManager*)getSharedInstance;

Desde el archivo de implementación, empiezas a escribir + ge y xcode seleccionará automáticamente el método

+(DBManager*)getSharedInstance;


Puede crear scripts para el elemento del menú de scripts en AppleScript, Perl, Python, Ruby o cualquier otro lenguaje de scripts que vaya en el menú de scripts.

Podría colocar el punto de inserción en el archivo .m y hacer que el script busque el archivo .h correspondiente. Ubique los protocolos compatibles y demás ...

MacTech publicó un artículo en 2007 Xcode Menu Scripts


Sé que esta es una pregunta antigua, pero si desea ver siempre las definiciones más recientes simplemente haga clic en la clase en cuestión y vaya a Definición. Aquí lee todas las funciones actuales no desaprobadas, por lo que no confía en un tercero para mantenerse actualizado.


También estoy buscando una manera de generar stubs de métodos para los protocolos en mi archivo de encabezado. Revisé Accessorizer y parece ser una herramienta útil, pero a menos que me haya perdido algo, no encontré la manera de que genere stubs de método para un protocolo.

Eric, si encontraste otra solución, publica lo que encontraste. Es sorprendente para mí que XCode no tenga esto integrado en el IDE.


Xcode 3.2 autocompletará las implementaciones de métodos conocidos. En otras palabras, si el método se declara en algún lugar (por ejemplo, en un protocolo), cuando empiece a escribirlo en un archivo .m, Xcode 3.2 autocompletará la firma del método por usted. Esto no es exactamente lo que pediste, pero es tremendamente útil.


No es la respuesta correcta, solo sugerencia:

Fuera de la caja XCode no puede.

Pero AppCode puede.

Puede hacer esto automáticamente (con su permiso, por supuesto).

Si algunos métodos de protocolo están marcados como @required , AppCode resaltará la implementación y sugerirá implementar estos métodos.

@optional métodos @optional también disponibles para implementar automáticamente (atajo: control + I ).