¿Por qué ProjectName-Prefix.pch no se crea automáticamente en Xcode 6?

¿Por qué ProjectName-Prefix.pch crea automáticamente en Xcode 6 ?

¿Ya no es necesario el encabezado de precomstackción?

¿Dónde debería escribir el código que estaba en ProjectName-Prefix.pch antes?

Sospecho que debido a los módulos, que eliminan la necesidad de #import .

En cuanto a dónde poner el código que pondría en un encabezado prefijo, no hay código que debe poner en un encabezado de prefijo. Coloque sus importaciones en los archivos que los necesitan. Pon tus definiciones en sus propios archivos. Pon tus macros … en ninguna parte. Deje de escribir macros a menos que no haya otra forma (como cuando necesita __FILE__ ). Si necesita macros, colóquelos en un encabezado e inclúyalo.

El encabezado del prefijo era necesario para cosas que son enormes y utilizadas por casi todo en todo el sistema (como Foundation.h ). Si tiene algo tan grande y omnipresente, debe reconsiderar su architecture. Los encabezados de prefijo hacen que la reutilización de código sea difícil e introducen sutiles problemas de comstackción si cualquiera de los archivos enumerados puede cambiar. Evítelos hasta que tenga un problema serio de tiempo de comstackción que pueda demostrar que ha mejorado dramáticamente con un encabezado de prefijo.

En ese caso, puedes crear uno y pasarlo a clang, pero es increíblemente raro que sea una buena idea.


EDITAR: a su pregunta específica sobre un HUD que usa en todos sus controles de vista, sí, debe importarlo absolutamente a cada controlador de vista que realmente lo use. Esto hace que las dependencias sean claras. Cuando reutilice su controlador de vista en un nuevo proyecto (que es común si construye bien sus controladores), sabrá de inmediato lo que requiere. Esto es especialmente importante para las categorías, que pueden hacer que el código sea muy difícil de reutilizar si están implícitas.

El archivo PCH no está allí para deshacerse de las dependencias de listado. Aún debe importar UIKit.h o Foundation.h según sea necesario, como lo hacen las plantillas de Xcode. El motivo de PCH es mejorar los tiempos de comstackción cuando se trata de encabezados realmente masivos (como en UIKit).

Sin la pregunta si es correcto o no, puede agregar el archivo PCH manualmente:

  1. Agregue un nuevo archivo PCH al proyecto: Nuevo archivo> Otro> Archivo PCH .

  2. En la opción Configuraciones de comstackción del objective, establezca el valor del encabezado del prefijo en el nombre del archivo PCH, con el nombre del proyecto como prefijo (es decir, para el proyecto denominado TestProject y el archivo PCH denominado MyPrefixHeaderFile , agregue el valor TestProject/MyPrefixHeaderFile.pch al plist).

    SUGERENCIA: puede usar cosas como $(SRCROOT) o $(PROJECT_DIR) para llegar a la ruta donde coloca el .pch en el proyecto.

  3. En la opción Configuraciones de comstackción del objective, establezca el valor del Encabezado del prefijo de precomstackción en YES .

Necesita crear su propio archivo PCH
Agregar New file -> Other-> PCH file

A continuación, agregue la ruta de este archivo PCH a su setting->prefix header->path comstackción- setting->prefix header->path

($ (SRCROOT) /filename.pch)

enter image description here

¡Te mostraré una foto!

  1. Agregar un nuevo archivo Agregar un nuevo archivo

  2. Vaya a Proyecto / Configuración de comstackción / APPl LLVM 6.0-Idioma Agregar un nuevo archivo

Para agregar el archivo .pch-

1) Agregue un nuevo archivo .pch a su proyecto-> Nuevo archivo-> otro-> archivo PCH

2) Vaya a la configuración de comstackción de su proyecto.

3) Buscar “encabezado de prefijo”. Puede encontrar eso en Apple LLVM.

4) Pegue esto en el campo $(SRCROOT)/yourPrefixHeaderFileName.pch

5) Limpiar y construir el proyecto. ¡¡¡Eso es!!!

enter image description here

Si decide agregar un archivo .pch manualmente y desea usar Objective-C como antes de xCode 6, también deberá importar los marcos de UIKit y Foundation en el archivo .pch. De lo contrario, tendrá que importar estos marcos manualmente en cada archivo de encabezado. Puede agregar el siguiente código de todos modos, ya que prueba el idioma utilizado:

 #ifdef __OBJC__ #import  #import  #endif 

Utilizar :

$ (PROJECT_DIR) / Nombre del proyecto / PrefixHeader.pch

Para agregar un nuevo archivo PCH siga los siguientes pasos:

(1) Agregar nuevo archivo – Seleccione iOS – Otro y archivo PCH

(2) agregue la ruta de acceso de este archivo PCH a su proyecto – BuildSetting – Apple LLVM 6.0 Language

Añadir Establecer ruta de encabezado de prefijo YourApplicationName (ruta de acceso raíz) /filename.pch