2011-02-17 13 views
6

¿Cuál es la importancia del archivo .pch y cuál es el significado de "#ifdef OBJC"?<AppName> .pch file usage

Además, ¿dónde definimos los parámetros como "#ifdef IS_PRODUCTION" que están marcados en el archivo .pch.

Respuesta

13

.pch es un encabezado de precompilación.

En los lenguajes de programación C y C++, un archivo de cabecera es un archivo de texto que pueden ser incluidos automáticamente en otro archivo de origen por el preprocesador de C, por lo general especificado por el uso de directivas de compilación en el archivo de origen.

#ifdef OBJC permite el compilador sabe que el código es Objective-C.

#ifdef IS_PRODUCTION es algo que se ha definido por su cuenta, una directiva diciendo al compilador para hacer algo sólo si esto se define, lo más probable es-algo por una acumulación de producción.

+0

Ok. ¿Cuál es el significado de "#ifdef __OBJC__"? y también ¿dónde definimos las macros que ponemos en la condición if como "#ifdef IS_PRODUCTION"? – Abhinav

+1

Puede definirlos en cualquier lugar, para usarlos, simplemente importe el archivo en el que están. – WrightsCS

+3

Un bit retentivo anal, tal vez, pero "' #ifdef OBJC' le permite al compilador saber que el código es Objective-C "es bastante engañoso no está "diciéndole" nada a nadie, sino simplemente verificando si ObjC es conocido/está disponible en tiempo de compilación y asegurando que su código contenido sea omitido durante la compilación. El efecto puede ser el mismo en 9 de cada 10 casos, pero las implicaciones técnicas son significativamente diferentes. El compilador no obtiene más información a través de '#ifdef OBJC', sino todo lo contrario. Conduce a la omisión del código (y potencialmente crítico) después de todo. – Regexident

15

El archivo .pch le permite evitar la importación de archivos comunes como UIKit.h y Foundation.h. Si tiene esos archivos importados en .pch, sus propias clases no necesitan importarlos.

La importancia de #ifdef OBJC es que no importe los encabezados que contienen el código objetivo-c si no tiene el compilador configurado para compilar el código objetivo c (evitando así muchos errores del compilador).

Define parámetros como IS_PRODUCTION dentro de la configuración de compilación del objetivo. Lo hago generalmente en "otros C indicadores".