salma rey mohamed marruecos lalla esposa objective-c protocols

rey - Nombramiento de protocolo en Objective C



mohamed vi (3)

Si ve un protocolo predefinido de uitableview, NSUrlconnection, entonces obtendrá el nombre de protocal como UItabaleviewDelegate y NSUrlconnectionDelegate. ........

Entonces puedes entender fácilmente qué delegado pertenece a qué clase

Así que puedes usar tu classnameDelegate como nombre protocal ... gracias

Estoy luchando con nombrar protocolos en Objective-C. Por ejemplo:

Tengo un protocolo llamado Comando. Tengo una clase abstracta que implementa el comando que es una clase base para mis comandos concretos.

Creo que es posible llamar tanto al protocolo como a la clase base ''Comando'', pero esto es confuso y causará conflictos de importación si necesito hacer referencia al protocolo en una implementación. También entiendo que en el Objetivo C, usar un prefijo para denotar un protocolo es de mala forma. Algunos ejemplos usan ''ing'' agregado al final, pero en este caso no tiene sentido. Llamar a la clase abstracta ''CommandBase'' también parece incorrecto.

Entonces, ¿cómo debo nombrarlos?


Todo está cubierto en las Pautas de codificación de Apple para Cocoa en la sección Conceptos básicos sobre nombres de códigos.

El autor declara:

Los protocolos deben nombrarse de acuerdo con la forma en que agrupan los comportamientos:

La mayoría de los protocolos agrupan métodos relacionados que no están asociados con ninguna clase en particular. Este tipo de protocolo se debe nombrar para que el protocolo no se confunda con una clase. Una convención común es utilizar un formulario de gerundio ("... ing"):

NSLocking - Bueno.

NSLock - Pobre (parece un nombre para una clase).

Algunos protocolos agrupan varios métodos no relacionados (en lugar de crear varios protocolos pequeños separados). Estos protocolos tienden a asociarse con una clase que es la expresión principal del protocolo. En estos casos, la convención es dar al protocolo el mismo nombre que la clase.

Un ejemplo de este tipo de protocolo es el protocolo NSObject. Este protocolo agrupa los métodos que puede usar para consultar cualquier objeto sobre su posición en la jerarquía de clases, para hacer que invoque métodos específicos y para aumentar o disminuir su conteo de referencias. Debido a que la clase NSObject proporciona la expresión principal de estos métodos, el protocolo recibe el nombre de la clase.


Yo sugeriría que en su caso no es necesariamente incorrecto nombrar a su protocolo y la clase base de la misma manera, ya que su clase es la expresión principal del protocolo (como con NSObject ).

De las pautas de codificación de Apple para el cacao: conceptos básicos de nomenclatura de códigos :

Algunos protocolos agrupan varios métodos no relacionados (en lugar de crear varios protocolos pequeños separados). Estos protocolos tienden a asociarse con una clase que es la expresión principal del protocolo. En estos casos, la convención es dar al protocolo el mismo nombre que la clase. Un ejemplo de este tipo de protocolo es el protocolo NSObject. Este protocolo agrupa los métodos que puede usar para consultar cualquier objeto sobre su posición en la jerarquía de clases, para hacer que invoque métodos específicos y para aumentar o disminuir su conteo de referencias. Debido a que la clase NSObject proporciona la expresión principal de estos métodos, el protocolo recibe el nombre de la clase.