Coding Guidelines for Cocoa es un gran recurso para responder cualquier pregunta de convención de nomenclatura. Mi respuesta está basada tanto como sea posible en esto.
método init
El método init se ve bien.
- (id) initWithName:(NSString *) name;
Clase Método
El método de la clase se ve bien.
+ (NSString *) aliasForName:(NSString *) name
Los métodos de clase también se pueden utilizar para crear instancias de una instancia de un objeto.En este caso, la API de Apple en general, tienen el comienzo método con el nombre de la clase como método UIButton
's buttonWithType:
que tiene la firma:
+ (id)buttonWithType:(UIButtonType)buttonType
Métodos de instancia
buen recurso para las convenciones de codificación para los métodos se pueden encontrado bajo General Rules.
El siguiente método debe caer los "and"
s:
- (void) methodWithApple:(NSString *) apple andOrange:(NSString *) orange
andMango:(NSString *) mango // BAD
No utilice “y” vincular palabras clave que son atributos del receptor.
- (int)runModalForDirectory:(NSString *)path file:(NSString *) name types:(NSArray *)fileTypes;
derecho
- (int)runModalForDirectory:(NSString *)path andFile:(NSString *)name andTypes:(NSArray *)fileTypes;
mal
La firma debe parecerse más a lo siguiente:
- (void) methodWithApple:(NSString*)apple orange:(NSString*)orange
mango:(NSString*)mango // GOOD
Por último, creo que hay un par de mejoras que se podrían hacer en lo que parece ser un método delegado:
- (void) statusWasChanged:(id)sender // Not horrible, but not ideal
primera mejora consiste en añadir el nombre de la clase con el método.
El nombre debe comenzar por la identificación de la clase del objeto que está enviando el mensaje :
- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(int)row;
- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename;
segunda mejora es el uso de "DidChange"
en lugar de "WasChanged"
.
Uso “sí” o “voluntad” de los métodos que se invocan para notificar al delegado que algo ha sucedido o está a punto de suceder.
- (void)browserDidScroll:(NSBrowser *)sender;
- (NSUndoManager *)windowWillReturnUndoManager:(NSWindow *)window;
tercera mejora es emitir fuertemente el parámetro remitente. No tengo documentación para apoyar esto, sin embargo, todos los ejemplos proporcionados en los ejemplos exudan este comportamiento. Observe el (NSBrowser*)sender
y (NSWindow*)window
en la muestra del código anterior tomada directamente de los documentos de apple.
Con esto en mente, el método delegado debería parecerse más a:
- (void) senderClassNameStatusDidChange:(SenderClassName*)sender // Good
Si el remitente se opone a una persona que se vería así:
- (void) personStatusDidChange:(Person*)sender // Good
Una palabra de advertencia es que se no siempre debe usar "did" en los métodos de delegado.
Aunque puede utilizar “hizo” o “voluntad” de los métodos que se invocan para piden el delegado de hacer algo en nombre de otro objeto, “debería” se prefiere .
- (BOOL)windowShouldClose:(id)sender;
Por 'initWithName' asegúrese de entender cómo ARC tratará esto (es decir, devolver un objeto retenido) – Thilo
su convención de nombres es bueno .. –