¿Qué es el archivo Prefix.pch en Xcode?

100

Muchos desarrolladores están agregando varias macros de conveniencia al Prefix.pch. Pero mi pregunta es qué es ese Prefix.pcharchivo.

  • Si elimino ese Prefix.pcharchivo de mi Xcode, ¿se ejecutará mi aplicación? ¿O mostrará algún error? ¿O se bloqueará durante la construcción?

  • ¿Cómo puedo ejecutar mi aplicación sin Prefix.pcharchivo?

SR Nayak
fuente

Respuestas:

117

Encabezado precompilado.

¿Qué es?

A Prefix.pches un encabezado precompilado. Los encabezados precompilados se inventaron para acelerar la compilación . En lugar de analizar los mismos archivos de encabezado una y otra vez, estos archivos se analizan una vez, antes de tiempo.

Xcode

En Xcode, agrega importaciones de los archivos de encabezado que desea en un "encabezado de prefijo" y habilita Precompile Prefix Headerpara que se compilen previamente. Pero la idea detrás de un encabezado de prefijo es diferente a la de precompilar.

Un encabezado de prefijo se incluye implícitamente al comienzo de cada archivo fuente. Es como si cada archivo fuente agregara

#import "Prefix.pch"

en la parte superior del archivo, antes que nada.

Quitándolo.

Puede eliminar el encabezado precompilado. Esta pregunta ya ha sido respondida en el hilo que estoy vinculando a continuación. Contiene toda la información que necesita, así como comentarios útiles.

¿Está bien eliminar el archivo Prefix.pch del proyecto Xcode?

RaffAl
fuente
24

¿Cuál es el archivo Prefix.pch?

Un .pch es un encabezado precompilado.

En los lenguajes de programación C y C ++, un archivo de encabezado es un archivo cuyo texto puede ser incluido automáticamente en otro archivo fuente por el preprocesador C, generalmente especificado por el uso de directivas del compilador en el archivo fuente.

Los encabezados de prefijo se compilan y almacenan en un caché, y luego se incluyen automáticamente en cada archivo durante la compilación. Esto puede acelerar la compilación y le permite incluir un archivo sin agregar una declaración de importación a cada archivo que lo use. No son obligatorios y, de hecho, la compilación es lenta cada vez que los cambia.

Sí, puede compilar y ejecutar el proyecto sin el archivo .pch

En Xcode, vaya a la configuración de compilación de su objetivo (Comando-Opción-E, pestaña de compilación) y desmarque Precompile Prefix Header (GCC_PRECOMPILE_PREFIX_HEADER). También puede eliminar el valor de la configuración del encabezado de prefijo si lo desea.

También tenga en cuenta que,

¡No coloque macros en un archivo.pch! Un archivo .pch es, por definición, un encabezado precompilado específico del proyecto. Realmente no debería usarse más allá del contexto del proyecto y realmente no debería contener nada más que #includes e #imports.

Si tiene algunas macros y desea compartirlas entre encabezados, colóquelas en un archivo de encabezado propio, Common.ho lo que sea, y #incluya eso al principio del .pch

Hemang
fuente
Considere agregar un comentario para indicar el motivo por el que se rechazó esta vieja búsqueda.
Hemang
7

Los encabezados de prefijo se compilan y almacenan en un caché, y luego se incluyen automáticamente en cada archivo durante la compilación. Esto puede acelerar la compilación y le permite incluir un archivo sin agregar una declaración de importación a cada archivo que lo use. No son obligatorios y, de hecho, la compilación es lenta cada vez que los cambia.

Generalmente .pchla formación de nombres de archivos esyourProjectName-Prefix.pch

iPatel
fuente
1

Historia:

#include => #import => .pch

#incluir vs #importar

Encabezados precompilados: prefix.pch

#includevs @importtiene una desventaja: el tiempo de compilación es lento porque un compilador debe analizar y compilar tantas veces como .harchivos importados.

Precompiled header file - .pch: recopila los encabezados comunes. Cuando este archivo está precompilado, se puede usar en archivos de origen, lo que acelera el tiempo de compilación.

Echemos un vistazo a la Prefix.pchmuestra:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

Para agregar un .pcharchivo, vaya a Build Settings:

ingrese la descripción de la imagen aquí

El desarrollador tiene que administrar el .pcharchivo que impone costos adicionales para respaldarlo.

El siguiente paso es @import[Acerca de]

yoAlex5
fuente