2008-10-11 5 views
28

En Visual Studio, si defino una clase para implementar una interfaz, p.¿Existe una combinación de teclas en Xcode para implementar un protocolo?

class MyObject : ISerializable {} 

Puedo hacer clic derecho sobre ISerializable, seleccione "Implementar interfaz " en el menú contextual y ver los métodos apropiados aparecen en mi definición de clase.

class MyObject : ISerializable { 
    #region ISerializable Members 
    public void GetObjectData(SerializationInfo info, 
       StreamingContext context) 
    { 
     throw new NotImplementedException(); 
    } 
    #endregion 
} 

¿Hay algo como esta funcionalidad disponible en Xcode en la Mac? Me gustaría poder implementar Protocolos automáticamente de esta manera. Tal vez con los métodos opcionales generados pero comentados.

Respuesta

6

No he visto esa característica en Xcode. Pero parece que alguien podría escribir un nuevo script de usuario llamado "Colocar implementador Defs en el portapapeles" que se encuentra dentro de Scripts> Código.

No le ha sido útil.

+10

¿Quién no encontró qué útil, y por qué, y a propósito de qué? – nmr

5

No existe actualmente tal refactorización en Xcode.

Si lo desea, por favor registre enhancement request.

0

Macrumors tuvieron una discusión sobre esto también. Hay un enlace a algunas secuencias de comandos de apple. No he probado estos.

1

Xcode puede ayudar por el método de protocolo, digamos que usted tiene un protocolo de la siguiente manera:

@protocol PosterousWebsitesDelegate <NSObject> 
- (void)PosterousWebsitesLoadSuccess:(PosterousWebsites*)websites; 
@end 

en la sección @implementation de su archivo .m puede empezar a escribir el nombre del método y pulsando la tecla ESC clave para autocompletar la firma del método/selector:

-(void)Poste (...press ESC...) 

Xcode autocompletará a la firma definitiva del método @protocol, pres TAB para confirmar el código.

Si realmente está cometiendo aprender OSX/Desarrollo IOS, yo recomendaría que lea "XCode 3 Desencadenada", un libro que realmente me ayudó a saber Xcode tan profundo que sé VS :)

+1

Incluso puede hacerlo más rápido simplemente escribiendo '- P (presione ESC)' (sin tipo de retorno - Xcode5 aún mostrará el selector correcto). Vea Development_gems de videos wwdc ... – liefersfl

22

XCode actualmente no es compatible con ese tipo de automatización. Pero: una manera fácil de obtener su código de bootstrap con un protocolo es la opción de clic en el nombre del protocolo en su declaración de la clase

@interface FooAppDelegate : NSObject <NSApplicationDelegate, 
             NSTableViewDelegate> { 

para abrir rápidamente el archivo .h que define el protocolo. Desde allí, copie y pegue los métodos que le interesan. Esos encabezados suelen ser bien comentados, lo que ayuda a determinar qué métodos puede ignorar de manera segura.

+1

Pero no está respondiendo la pregunta. Él está preguntando sobre una combinación de teclas para agregarlas y evitar copiar/pegar. – lagos

+2

@lagos Creo que Clay está respondiendo la pregunta. Él dice que la respuesta es "no" y ofrece una alternativa. –

2

Sé que este hilo es un poco viejo, pero me preguntaba lo mismo y encontré esta pregunta.

En mi caso, estoy definiendo una propiedad en la interfaz (.h) y quiero sintetizarla en la implementación (.m). También necesito implementar métodos definidos en la interfaz. Sí, Xcode ayuda como otros lo han mencionado, pero los IDE modernos ofrecen estas mejoras de productividad para cosas que hacemos con frecuencia. Parece que esto todavía no es una característica en Xcode 4.3.3. Sin embargo, la característica está disponible en JetBrains' AppCode. Solo estoy incursionando en la versión de prueba, pero parece que solo es posible una propiedad o método a la vez, no toda la interfaz como Visual Studio.

Cuestiones relacionadas