2011-04-07 8 views
8

Cuando yo estaba usando Xcode 3 que había configurado con un script en perl que encontré en la web que me ha permitido generar automáticamente el código @property, @synthesize y dealloc para nuevas variables de instancia. Sin embargo, Xcode 4 no tiene ese menú de scripts de usuario.Xcode4 Generación automática de las declaraciones @property y todo lo que ello conlleva

¿Hay una manera de conectar este tipo de scripts de usuario de Xcode 4 o Xcode 4 tiene una nueva característica que genera automáticamente esas cosas? (He buscado y no puedo encontrar ninguno).

No estoy hablando de vincular a IBOutlets. Sé que puedo arrastrar desde un xib y creará todo lo correcto para IBOutlets, pero estoy buscando algo que cree @property, @synthesize y dealloc code para cualquier variable de instancia.

Gracias, Kenny

+0

No tengo una solución para usted, pero he oído que el menú de servicios podría ser la forma de obtener este tipo de secuencias de comandos en Xcode 4. Para la osadía: parece que hay algunos (¿indocumentados?) Interfaces de complementos para Xcode ... – n8gray

Respuesta

3

Me fuertemente (y no puedo enfatizar esto lo suficiente) sugieren la aplicación:

Accessorizer

Esto es, con mucho, la aplicación más útil para escribir objetivo- C y el código objetivo-C 2.0 que he encontrado. Originalmente escrito en los días previos a ObjC2.0, creó ivar getters y setters para usted. Con los años, sigue evolucionando. Ahora tiene propiedades, clases de contenedor, codificación de valores clave, KVO.

Se adapta a su estilo: ¿Qué línea Cómo se pone en soportes, ¿cómo sangrar, ¿Qué comentario? También se instala como un servicio para que pueda llamarlo desde XCode, copiarlo en el portapapeles y pegarlo nuevamente en XCode.

No soy el autor, no consigo nada para conectar esto. Sin embargo, he introducido su uso en todos los equipos Mac en los que he trabajado y he convertido todos los programadores Obj-C en el primer uso.

Tiene un período de demostración. Definitivamente al menos pruébelo y vea si resuelve su problema.

+2

Esto parece una ~ ok ~ manera de hacerlo, pero por $ 10 esperaría algo que sea MUCHA más mágico. Anteriormente, he usado el manuscrito perl + encontrado en http://cocoawithlove.com/2008/12/instance-variable-to-synthesized.html. Ese es el nivel de automatización que estoy buscando. No tengo que presionar un combo de tecla masiva, luego navegar, luego combo de tecla, navegar, luego combo de tecla, navegar, y combo de tecla. La secuencia de comandos de Perl era solo una combinación de teclas y TODO se hizo automáticamente. :/Te votaré, pero esta no es la respuesta que estoy buscando. :( –

+0

No es tan ordenado como la opción de script Matt Gallagher en xCode 3, pero el uso de Accessorizer con xCode 4 parece hacer el trabajo por mí, recomendaría mirarlo. Sólo desearía no tener que saltar al archivo de implementación para Haga las inserciones. – gamozzii

0

I también de menos la guiones relacionados con la propiedad, pero he encontrado una solución alternativa. Como se señaló en otra parte, XCode 4 generará automáticamente el código property/synthesize/dealloc para IBoutlets que están conectadas a través de IB.

Tengo un XIB ficticio en mi proyecto llamado Property_Hack.XIB con algunos UILabels, y cada vez que necesito una nueva propiedad para una clase voy a Property_Hack, cambio el propietario y "conecto" una etiqueta al archivo. Todo lo que tiene que hacer es ingresar el nombre del ivar que desee, y XCode agregará la declaración @property al .h, y en el .m agregará el código @synthesize y dealloc. Luego modifico el .h (elimino la palabra clave IBoutlet, y cambio UILabel al tipo de datos que desea).

En lugar hacker y lejos de ser perfecto, pero aún así es un ahorro de tiempo en comparación con el esfuerzo manual de modificar ambos archivos. Como los NSIntegers y BOOL no necesitan el código dealloc, y se asignan en lugar de retener, generalmente los configuro manualmente en lugar de utilizar este enfoque.Si un NSStrings debe o no ser copiado o retenido es un argumento que no volveré a repetir aquí :-)

+1

Severamente limitado y enrevesado para obtener cualquier elemento que no sea UI no es realmente una solución. Cada IDE moderno en el mundo tiene una forma de generar automáticamente sus getters y setters. –

+1

No estoy en desacuerdo Kenny, creo que esto es un gran descuido y me hace rechinar los dientes. Sin embargo, para cualquier desarrollo de aplicaciones serio, cualquier cosa eso acelera el flujo de trabajo es mejor que nada. La aplicación de iPad para empresas en la que estoy trabajando tiene 67 clases con 503 propiedades. :) –

1

Pude obtener el script de perlado de Xcode 3 mencionado anteriormente que funciona bajo Xcode 4 como comportamiento.

Lo puse en github. https://bitly.com/HXHiij

Espero que ayude.

Cuestiones relacionadas