2011-07-28 13 views
245

¿Cuál es el propósito de las marcas #pragma en Xcode? ¿Tiene importancia su ubicación en los archivos .m? ¿Debe alguno #pragma venir antes que todos los demás?¿Cuál es el significado de #pragma marks? ¿Por qué necesitamos #pragma marks?

  • ¿Tienen que estar presentes?
  • ¿Se pueden agregar nuevas marcas? ¿Por qué serían? ¿Qué lo causa?
  • ¿Hay algún daño al quitar una marca? ¿Alguna vez querría?
+4

Revise el enlace: http://cocoasamurai.blogspot.com/2006/09/tip-pragma-mark-organizing-your-source.html – rptwsthi

+0

Personalmente no me gustan. En serio, ¿quieres pensar dónde tienes que poner un método todo el tiempo? Hay cosas mucho más importantes para mantenerse organizado, como prestar atención al Principio de Responsabilidad Individual –

+1

Para un lenguaje rápido La marca de pragma no funcionará. Use #MARK o #FIXME o #TODO revise este enlace para obtener más información http://stackoverflow.com/a/33040068/1753005 –

Respuesta

286

#pragma mark directivas aparecen en Xcode en los menús para acceder directamente a los métodos. No tienen ningún impacto en el programa en absoluto.

Por ejemplo, usarlo con Xcode 4 hará que esos elementos aparezcan directamente en la barra de salto.

Hay un pragma mark - especial que crea una línea.

enter image description here

52

#pragma mark se utiliza para etiquetar el grupo de métodos de lo que puede encontrar y detectar los métodos de la barra de salto fácilmente. Puede ayudarle cuando sus archivos de código lleguen a aproximadamente 1000 líneas y desee encontrar métodos rápidamente a través de la categoría desde el cuadro Saltar.

En un programa largo, resulta difícil recordar y encontrar un nombre de método. Por lo tanto, pragma mark le permite categorizar los métodos de acuerdo con el trabajo que realizan. Por ejemplo, etiquetó alguna etiqueta para los métodos de protocolo de vista de tabla, métodos AlertView, métodos Init, declaración, etc.

#pragma mark es la instalación de XCode pero no tiene ningún impacto en su código. Simplemente ayuda a facilitar la búsqueda de métodos durante la codificación.

18

En palabras simples podemos decir que #pragma mark - se usa para categorizar métodos, para que pueda encontrar sus métodos fácilmente. Es muy útil para proyectos largos.

10

Cuando tenemos una clase grande/larga dice más de un par de 100 líneas de código, no podemos ver todo en la pantalla Monitor, por lo tanto no podemos ver información general (también llamada elementos de documento) de nuestra clase. En algún momento queremos ver una descripción general de nuestra clase; todos sus métodos, constantes, propiedades, etc. de un vistazo. Puede presionar Ctrl + 6 en XCode para ver una descripción general de su clase. Obtendrás un tipo emergente de Window aka Jump Bar.

De forma predeterminada, esta barra de salto no tiene cubos/secciones. Es solo una larga lista. (Aunque podemos comenzar a escribir cuando aparece la barra de salto y se buscará entre los elementos de la barra de salto). Aquí viene la necesidad de pragma mark

Si desea crear secciones en su Jump Bar, puede utilizar las marcas pragma con la descripción correspondiente. Ahora refiera la instantánea adjunta en cuestión. Hay 'Ver Ciclo de Vida' y 'Una sección dedicada ..' son secciones creadas por pragma mark s

7

bien la búsqueda de doc para apuntar a cómo pragma son directivas para el compilador, encontré este NSHipster article que hace el trabajo bastante bien.

espero que disfrutará de la lectura

12

Sólo para añadir la información que estaba buscando: pragma mark es Xcode específica, por lo que si usted se ocupa de un proyecto de C++ que se abre en diferentes entornos de desarrollo, que no tiene cualquier efecto allí. En Qt Creator, por ejemplo, no agrega categorías para los métodos, ni genera advertencias/errores.

EDITAR

#pragma es una directiva de preprocesador que viene del lenguaje de programación C. Su propósito es especificar la información dependiente de la implementación al compilador, es decir, cada compilador puede elegir interpretar esta directiva como lo desee. Dicho esto, se considera una extensión que no cambia ni influye en el código en sí. Entonces los compiladores también podrían ignorarlo.

Xcode es un IDE que aprovecha #pragma y lo utiliza de forma específica. El punto es que #pragma no es Xcode e incluso Objective-C específico.

1
#pragma mark - NSSecureCoding 

El propósito principal de "pragma" es para la referencia del desarrollador. enter image description here

Puede encontrar fácilmente un método/función en una gran cantidad de miles de líneas de codificación.

+0

¿Puedo eliminar la línea? es un desperdicio de espacio para mi cerebro – YumYumYum

+1

La eliminación de ** # pragma-mark ** no afectará a ninguna funcionalidad de su código, pero su código puede perder su legibilidad. Si realmente no quieres, puedes eliminarlo. –

+0

¡EXCELENTE! Realmente odio el # pragma-mark y todas las demás cosas que no tienen nada que ver con compiler/build/execute. – YumYumYum

Cuestiones relacionadas