8

Las guías de estilo de Apple para los métodos de denominación dicen "No utilizar" y "para vincular las palabras clave que son atributos del receptor". y "Si el método describe dos acciones separadas, use" y "para vincularlas". En muchos casos, ninguna de estas condiciones se aplica. Por ejemplo, supongamos que tengo una función para hacer algo de trabajo y llamar a un selector en un destino cuando esté listo. Si esto se denomina¿Cuándo debería usar "y" en los nombres del método Objective-C?

- (void)findObjectsInBackgroundWithTarget:(id)target andSelector:(SEL)selector; 

o si esto se denomina

- (void)findObjectsInBackgroundWithTarget:(id)target selector:(SEL)selector; 

En ese ejemplo, el selector y el objetivo están relacionadas, pero no a través de ser atributos del receptor. Un ejemplo similar es recuperar un objeto con atributos particulares, pero el objeto no es el receptor del método. En caso de que esta función sea

+ (Thing *)getThingWithName:(NSString *)name andId:(NSString *)thingId; 

o si esto fuera nombrado

+ (Thing *)getThingWithName:(NSString *)name id:(NSString *)thingId; 

Sé que esto puede parecer una cosa menor, pero es agradable de usar el estilo de todo el mundo espera.

+1

Esto no es una respuesta, así que lo dejo como un comentario. Creo que para el ejemplo del objetivo/selector, el parámetro selector en muchas bibliotecas se llama 'acción'. Pero eso no invalida su pregunta como un punto general. – iandotkelly

+0

Creo que el vocabulario de objetivo/acción se usa principalmente para el código centrado en la IU (principalmente en NS/UIResponder y NS/UIControl, por ejemplo). El selector parece apropiado para el comportamiento de devolución de llamada como se indicó anteriormente (por ejemplo, como en NSNotification). –

+1

Ya que está preguntando sobre el estilo del nombre del método: 'get ...' tiene un significado específico en Cocoa; no se usa para métodos generales de obtención, sino solo para métodos que toman puntero a puntero y devuelven un objeto por referencia. Véase, por ejemplo, ['[NSArray getObjects: range:]'] (http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/ doc/uid/20000137-BABBGGHJ). –

Respuesta

7

Según lo que Apple dice, debe usar "y" solo si el nombre de su método describe la acción del método, por ejemplo, -(void)doThisAndThat, por lo que en sus ejemplos no debe usar "y" en los nombres de métodos .

+0

Y en una perspectiva de diseño, use "y" en el nombre de un método como explica Apple podría considerarse como falta de cohesión. – reinaldoluckman

Cuestiones relacionadas