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

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

¿Ya no se necesita el encabezado de precompilation?

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

Sospecho que debido a los modules, que eliminan la necesidad del #import <Cocoa/Cocoa.h> .

En cuanto a dónde colocar el código que pondría en un encabezado de prefijo, no hay ningún código que debe include en un encabezado de prefijo. Coloque sus importaciones en los files que las necesitan. Coloque sus definiciones en sus propios files. Pon tus macros … en ninguna parte. Deje de escribir macros a less que no haya otra forma (por ejemplo, cuando necesite __FILE__ ). Si necesita macros, póngalos en un encabezado e inclúyalo.

El encabezado del prefijo era necesario para las cosas que son enormes y que casi todo usa en todo el sistema (como Foundation.h ). Si tiene algo tan grande y omnipresente, debería repensar su architecture. Los encabezados Prefix hacen que la reutilización del código sea dura e introduce problemas de compilation sutiles si cualquiera de los files listdos puede cambiar. Evítalos hasta que tenga un problema grave de time de compilation que pueda demostrar que mejora drásticamente con un encabezado de prefijo.

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


EDITAR: a su pregunta específica sobre un HUD que usa en todos sus controlleres de vista, sí, debería importarla absolutamente en cada controller de vista que realmente lo use. Esto hace que las dependencies sean claras. Cuando reutilice su controller de vista en un nuevo proyecto (lo cual es común si crea sus controlleres bien), inmediatamente sabrá 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ícitos.

El file PCH no está allí para deshacerse de la list de dependencies. Aún debe importar UIKit.h o Foundation.h según sea necesario, como lo hacen las templates Xcode. El motivo de la PCH es mejorar los times de compilation cuando se trata de encabezados realmente masivos (como en UIKit).

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

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

  2. En la opción Configuración de compilation del objective, establezca el valor del encabezado de prefijo en el nombre del file PCH, con el nombre del proyecto como prefijo (es decir, para el proyecto denominado TestProject y el file 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 desde donde coloca el .pch en el proyecto.

  3. En la opción Configuración de compilation del objective, establezca el valor del encabezado de prefijos prefijo en YES .

Necesita crear su propio file PCH
Añadir New file -> Other-> PCH file

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

($ (SRCROOT) / filename.pch)

introduzca la descripción de la imagen aquí

¡Te mostraré una foto!

  1. Agregar un nuevo file Agregar un nuevo archivo

  2. Ir a Project / Build Setting / APPl LLVM 6.0-Language Agregar un nuevo archivo

Para agregar el file .pch-

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

2) Ir a la configuration de compilation de su proyecto.

3) Buscar "encabezado de prefijo". Puedes encontrar eso en Apple LLVM.

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

5) Limpia y construye el proyecto. ¡¡¡Eso es!!!

introduzca la descripción de la imagen aquí

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

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

Para agregar un nuevo file PCH, siga los siguientes pasos:

(1) Agregar nueva vista – Seleccionar iOS – Otro y file PCH

(2) agregue la ruta de acceso de este file PCH a su Proyecto – BuildSetting – Lenguaje Apple LLVM 6.0

Agregar Establecer ruta de encabezado de prefijo YourApplicationName (raíz-ruta) /filename.pch

Utilizar :

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