2010-10-30 11 views
35

¿Cuál es la convención de nomenclatura para las constantes en Objective-C (o la manera más ampliamente utilizada para nombrarlas)?¿Cómo se nombra una constante en Objective-C?

¿Hay un criterio diferente para las constantes extern?

Algunos estilos que he visto:

NSString* const kPreferenceFirstRun = @"FirstRun"; 

// Replace "XY" by a prefix representing your company, project or module 
NSString* const XYPreferenceFirstRun = @"FirstRun"; 

Respuesta

36

Después de buscar en Google, encontré el official coding guidelines for Cocoa.

Para resumir:

  • de inicio con una de dos o tres letras prefix en MAYÚSCULAS
  • Descansa en UpperCamelCase
  • mismos criterios tanto para extern constantes de

Estoy de acuerdo con itaiferber que el estilo de prefijo k es más claro y d también mucho más útil para autocompletar. Sería interesante saber si este estilo es más popular que las directrices oficiales.

+1

Creo que el beneficio de un prefijo de dos letras frente a k es doble: 1) el prefijo de dos letras le permite filtrar fácilmente sus elecciones de autocompletar solo al grupo de constantes que está buscando 2) cuando mira el código, usted sabe exactamente de qué dominio proviene la constante. Imagínese si está trabajando en un proyecto que utiliza múltiples proyectos hermanos en Xcode y todos usan k como el único identificador para las constantes: usted estaría atrapado ordenando una lista de todas las constantes de todos los proyectos hermanos. Alternativamente, si cada proyecto usó su propio prefijo de dos letras, se vuelve mucho más fácil. – memmons

+0

Punto muy interesante y respuesta muy interesante. ¿Y sería mejor tener las constantes declaradas en cada archivo de encabezado (MyClass.h), o sería mejor tener un archivo .h global (Constantes.h o similar) que contenga exclusivamente una declaración constante? He visto esta última práctica en muchos proyectos de C/C++, ¿por qué no en objC – voghDev

+0

? Vale la pena señalar que muchas bibliotecas de Apple están utilizando la kPrefixConstantNamingConvention. Por lo tanto, si elige uno u otro, es mayormente según las preferencias personales. Normalmente uso kPrefix, pero también tiendo a evitar las constantes globales, por lo que el espacio de nombres de esas constantes se vuelve menos importante. –

5

que es en mi opinión, la mejor práctica es nombrar constantes en mayúsculas. pero los desarrolladores de cocoa-core no parecen compartir mi opinión)) utilizan CamelCase para las constantes

+39

Quizás a los desarrolladores centrales de Cocoa no les gusta su código GRITANDO EN ELLOS. – dreamlax

+3

La técnica de mayúsculas fue utilizada en C porque hacía que las macros (no constantes, macros) se destacaran. Debido a que las macros son una construcción tan peligrosa en C, esta fue una técnica muy útil porque atraería la atención de posibles puntos problemáticos. Desafortunadamente, esta convención ha sido copiada erróneamente en idiomas que tienen mecanismos de definición constante perfectamente buenos integrados en el lenguaje mismo. – Ferruccio

+0

k es muy fácil de reconocer, y como se menciona en @hgpc, funciona bien para autocompletar. Las macros de preprocesador usan mayúsculas, por lo que tal vez sea mejor usarlas solo. – jpswain

Cuestiones relacionadas